成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

舉例說明Java8的時間處理

這篇文章主要為大家詳細介紹了Java8的時間處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

常用時間處理方法的問題

  1. java.util.Datejava.util.Calendar不是線程安全的類
  2. SimpleDateFormat也是非線程安全的類
  3. Calendar獲取月份時需要計算,因為月份從0開始

日期/時間類

  • LocalDateLocalTime

    站在用戶的角度思考問題,與客戶深入溝通,找到浮山網(wǎng)站設(shè)計與浮山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、虛擬主機、企業(yè)郵箱。業(yè)務(wù)覆蓋浮山地區(qū)。

    LocalDate類表示一個具體的日期,但不包含具體時間,也不包含時區(qū)信息,LocalTime表示一個具體的時間

    LocalDate localDate = LocalDate.of(2017, 1, 4);     // 初始化一個日期:2017-01-04
    LocalTime localTime = LocalTime.of(17, 23, 52);     // 初始化一個時間:17:23:52
  • LocalDateTime

    上述兩個類的結(jié)合體

    LocalDateTime ldt1 = LocalDateTime.of(2017, Month.JANUARY, 4, 17, 23, 52);
  • Instant

    Instant表示一個時間戳,精確到納秒

    Instant instant = Instant.ofEpochSecond(120, 100000);
    //參數(shù):seconds表示從1970-01-01 00:00:00開始到現(xiàn)在的秒數(shù),nanos表示納秒部分(nanos的值不會超過999,999,999)
  • Duration

    Duration表示一個時間段,精確到納秒

    LocalDateTime from = LocalDateTime.of(2017, Month.JANUARY, 5, 10, 7, 0);    // 2017-01-05 10:07:00
    LocalDateTime to = LocalDateTime.of(2017, Month.FEBRUARY, 5, 10, 7, 0);     // 2017-02-05 10:07:00
    Duration duration = Duration.between(from, to);     // 表示從 2017-01-05 10:07:00 到 2017-02-05 10:07:00 這段時間

日期格式化

  • DateTimeFormatter類處理日期格式化
  • java.time.ZoneId類處理時區(qū)

LocalTime to sql.time

LocalTime now = LocalTime.now();
Time time = Time.valueOf(now);

sql.time to LocalTime

//Get SQL time instance
Time sqlTime = new Time(new Date().getTime());
//Get LocalTime from SQL time
LocalTime localtime = sqlTime.toLocalTime();

Date類型與LocalTime轉(zhuǎn)換

// 01. java.util.Date --> java.time.LocalDateTime
public void UDateToLocalDateTime() {
    java.util.Date date = new java.util.Date();
    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
}

// 02. java.util.Date --> java.time.LocalDate
public void UDateToLocalDate() {
    java.util.Date date = new java.util.Date();
    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
    LocalDate localDate = localDateTime.toLocalDate();
}

// 03. java.util.Date --> java.time.LocalTime
public void UDateToLocalTime() {
    java.util.Date date = new java.util.Date();
    Instant instant = date.toInstant();
    ZoneId zone = ZoneId.systemDefault();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
    LocalTime localTime = localDateTime.toLocalTime();
}

// 04. java.time.LocalDateTime --> java.util.Date
public void LocalDateTimeToUdate() {
    LocalDateTime localDateTime = LocalDateTime.now();
    ZoneId zone = ZoneId.systemDefault();
    Instant instant = localDateTime.atZone(zone).toInstant();
    java.util.Date date = Date.from(instant);
}

// 05. java.time.LocalDate --> java.util.Date
public void LocalDateToUdate() {
    LocalDate localDate = LocalDate.now();
    ZoneId zone = ZoneId.systemDefault();
    Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
    java.util.Date date = Date.from(instant);
}

// 06. java.time.LocalTime --> java.util.Date
public void LocalTimeToUdate() {
    LocalTime localTime = LocalTime.now();
    LocalDate localDate = LocalDate.now();
    LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
    ZoneId zone = ZoneId.systemDefault();
    Instant instant = localDateTime.atZone(zone).toInstant();
    java.util.Date date = Date.from(instant);
}

獲取時區(qū)偏移量

String zoneStr = "Asia/Shanghai";
LocalDateTime dt = LocalDateTime.now();
ZoneId zoneId = ZoneId.of(zoneStr);
ZoneDateTime zdt = dt.atZone(zoneId);
ZoneOffset offset = zdt.getOffset();
System.out.println(offset);
//output: +08:00

將給定時間轉(zhuǎn)化為UTC時間

ZoneId australia = ZoneId.of("Australia/Sydney"); 
String str = "2018-08-31 17:00"; 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); 
LocalDateTime localtDateAndTime = LocalDateTime.parse(str, formatter); 
ZonedDateTime dateAndTimeInSydney = ZonedDateTime.of(localtDateAndTime, australia); 

System.out.println("Current date and time in a particular timezone : " + dateAndTimeInSydney); 

ZonedDateTime utcDate = dateAndTimeInSydney.withZoneSameInstant(ZoneOffset.UTC); 

System.out.println("Current date and time in UTC : " + utcDate); 
  • 另一種方式,設(shè)置與相應(yīng)的時區(qū)格式化
String input = "2018-08-31 17:00"; 
ZoneId zone = ZoneId.of("Australia/Sydney"); 

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").withZone(zone); 
ZonedDateTime utc = ZonedDateTime.parse(input, fmt).withZoneSameInstant(UTC); 

關(guān)于Java8的時間處理就分享到這里了,希望以上內(nèi)容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

網(wǎng)站欄目:舉例說明Java8的時間處理
鏈接分享:http://jinyejixie.com/article48/podjhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、響應(yīng)式網(wǎng)站做網(wǎng)站、網(wǎng)站設(shè)計公司、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
石首市| 铁力市| 黄陵县| 佛坪县| 大埔区| 蕉岭县| 缙云县| 贵南县| 宁津县| 绥芬河市| 深州市| 温州市| 彩票| 宜春市| 夏河县| 林甸县| 新蔡县| 定结县| 英吉沙县| 西乌珠穆沁旗| 凤城市| 成都市| 平乐县| 三亚市| 天门市| 湘潭县| 永登县| 达州市| 淅川县| 儋州市| 双辽市| 泾源县| 翁源县| 三门县| 澄江县| 新化县| 崇明县| 银川市| 竹溪县| 尉犁县| 武夷山市|