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

JAVA時(shí)間存儲(chǔ)類Period和Duration使用詳解

 更新時(shí)間:2022年09月29日 10:16:03   作者:Java面試365  
這篇文章主要為大家介紹了JAVA時(shí)間存儲(chǔ)類Period和Duration使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

在JDK1.8中區(qū)分了時(shí)間和日期的概念,所以有了兩個(gè)對(duì)應(yīng)的類,LocalDate和LocalTime,區(qū)別如下

  • LocalDate表示日期,不會(huì)包含具體的時(shí)間,例如2022-09-26。
  • LocalTime表示時(shí)間,不會(huì)包含日期,僅僅包含時(shí)分秒。

簡(jiǎn)單使用如下

LocalDate localDate = LocalDate.now();
// 執(zhí)行結(jié)果:2022-09-26
System.out.println(localDate);
LocalTime localTime = LocalTime.now();
// 執(zhí)行結(jié)果:16:17:12.381
System.out.println(localTime);

區(qū)分了時(shí)間和日期的概念后,為方便使用JDK1.8又推出了兩個(gè)用于存儲(chǔ)時(shí)間和日期的類,分別為Duraction和Period,這兩個(gè)類的區(qū)別和LocalDate和LocalTime是一一對(duì)應(yīng)的。

  • Period:表示日期的存儲(chǔ)用于度量年月日,一般用于存儲(chǔ)多個(gè)日期之間相差的日期值。
  • Duraction:表示時(shí)間的存儲(chǔ)用于度量時(shí)分秒,一般用于存儲(chǔ)多個(gè)時(shí)間之間相差的時(shí)間值。

Period類

Period可以應(yīng)用于存儲(chǔ)兩個(gè)日期之間的日期差,存儲(chǔ)年月日。

LocalDate localDate1 = LocalDate.of(2022,8,20);
LocalDate localDate2 = LocalDate.now();
// 計(jì)算兩個(gè)日期之間的差值
Period between = Period.between(localDate1, localDate2);
// 區(qū)間是否為0
System.out.println(between.isZero());
// 區(qū)間是否為負(fù)數(shù)
System.out.println(between.isNegative());
// 獲取區(qū)間相差幾年、幾月、幾日
System.out.println(between.getYears());
System.out.println(between.getMonths());
System.out.println(between.getDays());
// 區(qū)間相差的總月份
System.out.println(between.toTotalMonths());

除了主要場(chǎng)景外還提供一些其它API

實(shí)例化

// Period對(duì)象實(shí)例化可以直接調(diào)用of方法指定年月日,注意Period只做日期存儲(chǔ)所以不會(huì)校驗(yàn)?zāi)暝氯帐欠穹先掌谝?guī)范?。?!
Period period = Period.of(2022, 20, 5);
// 所以當(dāng)我們想取正常日期值時(shí)可以調(diào)用normalized方法轉(zhuǎn)換
Period period1 = Period.of(2022, 19, 9);
// 展示結(jié)果:2022==19
System.out.println(period1.getYears()+"=="+period1.getMonths());
Period period2 = period1.normalized();
// 展示結(jié)果:2023==7
System.out.println(period2.getYears()+"=="+period2.getMonths());

設(shè)置值

Period period1 = Period.of(2022, 19, 9);
// 值為:9
System.out.println(period1.getDays());
// 修改天數(shù)值,不會(huì)修改年月
Period period2 = period1.withDays(2);
// 值為:2
System.out.println(period2.getDays());
//=================================================
// plus相加,minus相減
Period period3 = period1.plusDays(2);
// 值為:11
System.out.println(period3.getDays());

年月日都可以用with、plus、minus相關(guān)API設(shè)置值~

其它API

Period period1 = Period.of(2022, 19, 9);
LocalDate localDate = LocalDate.of(2022,1,2);
// 給指定日期加上Period對(duì)象存儲(chǔ)的日期
Temporal temporal = period1.addTo(localDate);
// 返回結(jié)果:4045-08-11(日期對(duì)象)
System.out.println(temporal);
Period period2 = Period.of(1, 1, 2);
// 給指定日期減去Period對(duì)象存儲(chǔ)的日期
LocalDate localDate1 = LocalDate.of(2022,1,2);
// 返回結(jié)果:2020-11-30(日期對(duì)象)
System.out.println(period2.subtractFrom(localDate1));

Duraction類

Duraction可以應(yīng)用于存儲(chǔ)兩個(gè)時(shí)間之間的時(shí)間差,可以存儲(chǔ)時(shí)分秒。

LocalTime localTime1 = LocalTime.of(10,1,2);
LocalTime localTime2 = LocalTime.now();
// 得出時(shí)間區(qū)間間隔的時(shí)間差
Duration between = Duration.between(localTime1, localTime2);
// 區(qū)間相差天數(shù)
System.out.println(between.toDays());
// 區(qū)間相差小時(shí)
System.out.println(between.toHours());
// 區(qū)間相差分鐘
System.out.println(between.toMinutes());
// 區(qū)間中的秒數(shù)
System.out.println(between.getSeconds());
// 區(qū)間相差毫秒
System.out.println(between.toMillis());
// 區(qū)間相差納秒
System.out.println(between.toNanos());
System.out.println("======================");
Duration duration = Duration.ZERO;
// 區(qū)間是否為0
System.out.println(duration.isZero());
// 區(qū)間是否為負(fù)
System.out.println(between.isNegative());

其它API

Duration duration = Duration.ofSeconds(10);
// 值為:10
System.out.println(duration.getSeconds());
// 值取反
Duration duration1 = duration.negated();
// 值為:-10
System.out.println(duration1.getSeconds());
// 值除上指定值,得商
Duration duration2 = duration.dividedBy(2);
// 值為:5
System.out.println(duration2.getSeconds());
// 取絕對(duì)值
Duration duration3 = Duration.ofSeconds(-9).abs();
// 值為:9
System.out.println(duration3.getSeconds());

Duration對(duì)象同樣有minus、plus、with相關(guān)方法,使用方法可以參考Period對(duì)象使用。

以上就是JAVA時(shí)間存儲(chǔ)類Period和Duration使用詳解的詳細(xì)內(nèi)容,更多關(guān)于JAVA時(shí)間存儲(chǔ)類Period Duration的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄

    使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄

    這篇文章主要介紹了使用SpringBoot+OkHttp+fastjson實(shí)現(xiàn)Github的OAuth第三方登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java使用selenium爬取b站動(dòng)態(tài)的實(shí)現(xiàn)方式

    Java使用selenium爬取b站動(dòng)態(tài)的實(shí)現(xiàn)方式

    本文主要介紹了Java使用selenium爬取b站動(dòng)態(tài)的實(shí)現(xiàn)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • go語(yǔ)言題解LeetCode88合并兩個(gè)有序數(shù)組示例

    go語(yǔ)言題解LeetCode88合并兩個(gè)有序數(shù)組示例

    這篇文章主要為大家介紹了go語(yǔ)言題解LeetCode88合并兩個(gè)有序數(shù)組示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • java 如何讀取遠(yuǎn)程主機(jī)文件

    java 如何讀取遠(yuǎn)程主機(jī)文件

    這篇文章主要介紹了java 如何讀取遠(yuǎn)程主機(jī)文件的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • IDEA中安裝testng插件過(guò)程

    IDEA中安裝testng插件過(guò)程

    這篇文章主要介紹了IDEA中安裝testng插件過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • SkyWalking?自定義插件(Spring?RabbitMQ)具體分析過(guò)程

    SkyWalking?自定義插件(Spring?RabbitMQ)具體分析過(guò)程

    這篇文章主要介紹了SkyWalking?自定義插件(Spring?RabbitMQ)具體分析過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Java批量從svn導(dǎo)出多個(gè)項(xiàng)目代碼實(shí)例

    Java批量從svn導(dǎo)出多個(gè)項(xiàng)目代碼實(shí)例

    這篇文章主要介紹了java批量從svn導(dǎo)出多個(gè)項(xiàng)目代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • @ComponentScan在spring中無(wú)效的原因分析及解決方案

    @ComponentScan在spring中無(wú)效的原因分析及解決方案

    這篇文章主要介紹了@ComponentScan在spring中無(wú)效的原因分析及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Springboot3.3 整合Cassandra 4.1.5的詳細(xì)過(guò)程

    Springboot3.3 整合Cassandra 4.1.5的詳細(xì)過(guò)程

    這篇文章主要介紹了Springboot3.3 整合Cassandra 4.1.5的詳細(xì)過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Spring事務(wù)失效的幾種原因

    Spring事務(wù)失效的幾種原因

    在日常編碼過(guò)程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因.
    2020-09-09

最新評(píng)論

健康| 长子县| 会东县| 舒城县| 正阳县| 长乐市| 新宾| 济阳县| 澄城县| 中阳县| 常宁市| 双江| 甘谷县| 梓潼县| 福鼎市| 博客| 彰化县| 稻城县| 茂名市| 宁陕县| 济阳县| 怀集县| 文安县| 正蓝旗| 左云县| 大厂| 涞水县| 囊谦县| 营山县| 辽阳县| 常山县| 长子县| 南安市| 建宁县| 灵宝市| 永平县| 武清区| 炎陵县| 成都市| 福贡县| 许昌市|