最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java8 新特性之日期API

 更新時(shí)間:2017年07月21日 17:08:50   作者:April.Chen  
Java 8 在包java.time下包含了一組全新的時(shí)間日期API。下面通過(guò)示例給大家講解java8 新特征日期api的相關(guān)知識(shí),感興趣的朋友一起看看吧

Java 8 在包java.time下包含了一組全新的時(shí)間日期API。下面的例子展示了這組新API里最重要的一些部分:

1.Clock 時(shí)鐘

Clock類(lèi)提供了訪問(wèn)當(dāng)前日期和時(shí)間的方法,Clock是時(shí)區(qū)敏感的,可以用來(lái)取代 System.currentTimeMillis() 來(lái)獲取當(dāng)前的微秒數(shù)。某一個(gè)特定的時(shí)間點(diǎn)也可以使用Instant類(lèi)來(lái)表示,Instant類(lèi)也可以用來(lái)創(chuàng)建老的java.util.Date對(duì)象。

Clock clock = Clock.systemDefaultZone();
long millis = clock.millis();
Instant instant = clock.instant();
Date legacyDate = Date.from(instant);  // legacy java.util.Date

2.Timezones 時(shí)區(qū)

在新API中時(shí)區(qū)使用ZoneId來(lái)表示。時(shí)區(qū)可以很方便的使用靜態(tài)方法of來(lái)獲取到。 時(shí)區(qū)定義了到UTS時(shí)間的時(shí)間差,在Instant時(shí)間點(diǎn)對(duì)象到本地日期對(duì)象之間轉(zhuǎn)換的時(shí)候是極其重要的。

System.out.println(ZoneId.getAvailableZoneIds());
// prints all available timezone ids
ZoneId zone1 = ZoneId.of("Europe/Berlin");
ZoneId zone2 = ZoneId.of("Brazil/East");
System.out.println(zone1.getRules());
System.out.println(zone2.getRules());
// ZoneRules[currentStandardOffset=+01:00]
// ZoneRules[currentStandardOffset=-03:00]

3.LocalTime 本地時(shí)間

LocalTime 定義了一個(gè)沒(méi)有時(shí)區(qū)信息的時(shí)間,例如 晚上10點(diǎn),或者 17:30:15。下面的例子使用前面代碼創(chuàng)建的時(shí)區(qū)創(chuàng)建了兩個(gè)本地時(shí)間。之后比較時(shí)間并以小時(shí)和分鐘為單位計(jì)算兩個(gè)時(shí)間的時(shí)間差:

LocalTime now1 = LocalTime.now(zone1);
LocalTime now2 = LocalTime.now(zone2);
System.out.println(now1.isBefore(now2)); // false
long hoursBetween = ChronoUnit.HOURS.between(now1, now2);
long minutesBetween = ChronoUnit.MINUTES.between(now1, now2);
System.out.println(hoursBetween);    // -3
System.out.println(minutesBetween);   // -239

LocalTime 提供了多種工廠方法來(lái)簡(jiǎn)化對(duì)象的創(chuàng)建,包括解析時(shí)間字符串。

LocalTime localTime= LocalTime.of(23, 59, 59);
System.out.println(localTime);    // 23:59:59
DateTimeFormatter germanFormatter =
  DateTimeFormatter
    .ofLocalizedTime(FormatStyle.SHORT)
    .withLocale(Locale.GERMAN);
LocalTime leetTime = localTime.format(germanFormatter);
System.out.println(leetTime);  

4.LocalDate 本地日期

LocalDate 表示了一個(gè)確切的日期,比如 2014-03-11。該對(duì)象值是不可變的,用起來(lái)和LocalTime基本一致。下面的例子展示了如何給Date對(duì)象加減天/月/年。另外要注意的是這些對(duì)象是不可變的,操作返回的總是一個(gè)新實(shí)例。

LocalDate today = LocalDate.now();
LocalDate tomorrow = today.plus(1, ChronoUnit.DAYS);
LocalDate yesterday = tomorrow.minusDays(2);
LocalDate independenceDay = LocalDate.of(2014, Month.JULY, 4);
DayOfWeek dayOfWeek = independenceDay.getDayOfWeek();
System.out.println(dayOfWeek);  // FRIDAY

從字符串解析一個(gè)LocalDate類(lèi)型和解析LocalTime一樣簡(jiǎn)單:

DateTimeFormatter germanFormatter =
  DateTimeFormatter
    .ofLocalizedDate(FormatStyle.MEDIUM)
    .withLocale(Locale.GERMAN);
LocalDate xmas = LocalDate.parse("24.12.2014", germanFormatter);
System.out.println(xmas);  // 2014-12-24

5.LocalDateTime 本地日期時(shí)間

LocalDateTime 同時(shí)表示了時(shí)間和日期,相當(dāng)于前兩節(jié)內(nèi)容合并到一個(gè)對(duì)象上了。LocalDateTime和LocalTime還有LocalDate一樣,都是不可變的。LocalDateTime提供了一些能訪問(wèn)具體字段的方法。

LocalDateTime sylvester = LocalDateTime.of(2014, Month.DECEMBER, 31, 23, 59, 59);
DayOfWeek dayOfWeek = sylvester.getDayOfWeek();
System.out.println(dayOfWeek);   // WEDNESDAY
Month month = sylvester.getMonth();
System.out.println(month);     // DECEMBER
long minuteOfDay = sylvester.getLong(ChronoField.MINUTE_OF_DAY);
System.out.println(minuteOfDay);  // 1439

只要附加上時(shí)區(qū)信息,就可以將其轉(zhuǎn)換為一個(gè)時(shí)間點(diǎn)Instant對(duì)象,Instant時(shí)間點(diǎn)對(duì)象可以很容易的轉(zhuǎn)換為老式的java.util.Date。

Instant instant = sylvester
    .atZone(ZoneId.systemDefault())
    .toInstant();
Date legacyDate = Date.from(instant);
System.out.println(legacyDate);   // Wed Dec 31 23:59:59 CET 2014

格式化LocalDateTime和格式化時(shí)間和日期一樣的,除了使用預(yù)定義好的格式外,我們也可以自己定義格式:

DateTimeFormatter formatter =
  DateTimeFormatter
    .ofPattern("MMM dd, yyyy - HH:mm");
LocalDateTime parsed = LocalDateTime.parse("Nov 03, 2014 - 07:13", formatter);
String string = formatter.format(parsed);
System.out.println(string);   // Nov 03, 2014 - 07:13

和java.text.NumberFormat不一樣的是新版的DateTimeFormatter是不可變的,所以它是線程安全的。

以上所述是小編給大家介紹的Java8 新特性之日期API,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 使用Postman傳遞arraylist數(shù)據(jù)給springboot方式

    使用Postman傳遞arraylist數(shù)據(jù)給springboot方式

    這篇文章主要介紹了使用Postman傳遞arraylist數(shù)據(jù)給springboot方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 關(guān)于Java JDK安裝、配置環(huán)境變量的問(wèn)題

    關(guān)于Java JDK安裝、配置環(huán)境變量的問(wèn)題

    這篇文章主要介紹了Java JDK安裝、配置環(huán)境變量,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Mybatis優(yōu)化檢索的方法詳解

    Mybatis優(yōu)化檢索的方法詳解

    MyBatis是一款優(yōu)秀的基于Java的持久層框架,它可以將 SQL 語(yǔ)句和數(shù)據(jù)庫(kù)中的記錄映射成為 Java 對(duì)象,并且支持靈活的 SQL 查詢語(yǔ)句,在Mybatis中,可以使用動(dòng)態(tài)SQL來(lái)靈活構(gòu)造SQL語(yǔ)句,從而滿足各種不同的檢索需求,本文介紹Mybatis如何優(yōu)化檢索,需要的朋友可以參考下
    2024-05-05
  • Springboot接收文件與發(fā)送文件實(shí)例教程

    Springboot接收文件與發(fā)送文件實(shí)例教程

    最近工作中遇到個(gè)需求,springboot簡(jiǎn)單的上傳文檔或者圖片,并且進(jìn)行操作,操作完后進(jìn)行保存指定路徑,下面這篇文章主要給大家介紹了關(guān)于Springboot接收文件與發(fā)送文件的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Spring之@DependsOn注解詳細(xì)解析

    Spring之@DependsOn注解詳細(xì)解析

    這篇文章主要介紹了Spring之@DependsOn注解詳細(xì)解析,@DependsOn注解是Spring中提供的一個(gè)指定Spring創(chuàng)建Bean的依賴順序的注解,需要的朋友可以參考下
    2024-01-01
  • 使用bitset實(shí)現(xiàn)毫秒級(jí)查詢(實(shí)例講解)

    使用bitset實(shí)現(xiàn)毫秒級(jí)查詢(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇使用bitset實(shí)現(xiàn)毫秒級(jí)查詢(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Java使用Log4j記錄日志的方法詳解

    Java使用Log4j記錄日志的方法詳解

    log4j是一個(gè)常用的日志框架,用于記錄應(yīng)用程序的執(zhí)行過(guò)程或異常等記錄在日志文件中。本文將利用Log4j記錄日志,感興趣的可以了解一下
    2022-03-03
  • 將Java程序的輸出結(jié)果寫(xiě)入文件方法實(shí)例

    將Java程序的輸出結(jié)果寫(xiě)入文件方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于將Java程序的輸出結(jié)果寫(xiě)入文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • SpringBoot+Security 發(fā)送短信驗(yàn)證碼的實(shí)現(xiàn)

    SpringBoot+Security 發(fā)送短信驗(yàn)證碼的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot+Security 發(fā)送短信驗(yàn)證碼的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 關(guān)于spring-security(記住密碼,CSRF)

    關(guān)于spring-security(記住密碼,CSRF)

    文章主要介紹了Spring Security中的PersistentTokenRepository、CSRF保護(hù)機(jī)制以及如何在登錄頁(yè)面添加記住我功能,并分享了相關(guān)實(shí)現(xiàn)代碼和配置
    2024-11-11

最新評(píng)論

壶关县| 东城区| 泽库县| 丹巴县| 宕昌县| 洛扎县| 邯郸县| 安康市| 松原市| 博兴县| 沙河市| 长顺县| 五常市| 和平县| 新河县| 盐边县| 临夏市| 望都县| 尤溪县| 都江堰市| 来凤县| 改则县| 南丰县| 阿勒泰市| 丹巴县| 县级市| 南涧| 垫江县| 航空| 顺平县| 翁牛特旗| 周宁县| 遂川县| 海盐县| 米脂县| 巴南区| 永州市| 巴彦县| 科技| 晴隆县| 泰顺县|