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

JAVA時間存儲類Period和Duration使用詳解

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

前言

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

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

簡單使用如下

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ū)分了時間和日期的概念后,為方便使用JDK1.8又推出了兩個用于存儲時間和日期的類,分別為Duraction和Period,這兩個類的區(qū)別和LocalDate和LocalTime是一一對應(yīng)的。

  • Period:表示日期的存儲用于度量年月日,一般用于存儲多個日期之間相差的日期值。
  • Duraction:表示時間的存儲用于度量時分秒,一般用于存儲多個時間之間相差的時間值。

Period類

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

LocalDate localDate1 = LocalDate.of(2022,8,20);
LocalDate localDate2 = LocalDate.now();
// 計算兩個日期之間的差值
Period between = Period.between(localDate1, localDate2);
// 區(qū)間是否為0
System.out.println(between.isZero());
// 區(qū)間是否為負數(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());

除了主要場景外還提供一些其它API

實例化

// Period對象實例化可以直接調(diào)用of方法指定年月日,注意Period只做日期存儲所以不會校驗?zāi)暝氯帐欠穹先掌谝?guī)范!??!
Period period = Period.of(2022, 20, 5);
// 所以當我們想取正常日期值時可以調(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ù)值,不會修改年月
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對象存儲的日期
Temporal temporal = period1.addTo(localDate);
// 返回結(jié)果:4045-08-11(日期對象)
System.out.println(temporal);
Period period2 = Period.of(1, 1, 2);
// 給指定日期減去Period對象存儲的日期
LocalDate localDate1 = LocalDate.of(2022,1,2);
// 返回結(jié)果:2020-11-30(日期對象)
System.out.println(period2.subtractFrom(localDate1));

Duraction類

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

LocalTime localTime1 = LocalTime.of(10,1,2);
LocalTime localTime2 = LocalTime.now();
// 得出時間區(qū)間間隔的時間差
Duration between = Duration.between(localTime1, localTime2);
// 區(qū)間相差天數(shù)
System.out.println(between.toDays());
// 區(qū)間相差小時
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ū)間是否為負
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());
// 取絕對值
Duration duration3 = Duration.ofSeconds(-9).abs();
// 值為:9
System.out.println(duration3.getSeconds());

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

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

相關(guān)文章

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

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

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

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

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

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

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

    java 如何讀取遠程主機文件

    這篇文章主要介紹了java 如何讀取遠程主機文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • IDEA中安裝testng插件過程

    IDEA中安裝testng插件過程

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

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

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

    Java批量從svn導(dǎo)出多個項目代碼實例

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

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

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

    Springboot3.3 整合Cassandra 4.1.5的詳細過程

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

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

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

最新評論

广宗县| 徐闻县| 开鲁县| 五指山市| 宁河县| 北票市| 遂昌县| 塘沽区| 合川市| 涟水县| 汉阴县| 阳新县| 柳林县| 互助| 自贡市| 特克斯县| 临泉县| 景洪市| 阿图什市| 田林县| 静乐县| 邛崃市| 湟中县| 项城市| 南木林县| 驻马店市| 高要市| 高邮市| 昌江| 仁布县| 宜宾市| 孝感市| 崇仁县| 澜沧| 成安县| 包头市| 青海省| 凤山县| 木兰县| 万安县| 新疆|