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

java8時間間隔類Duration和Period示例代碼

 更新時間:2026年04月08日 10:11:05   作者:五阿哥永琪  
文章解釋了Java中Duration和Period的區(qū)別,并提供了它們的特點(diǎn)、適用場景和常見用途,文中還提供了每個類的常用方法和示例,感興趣的朋友一起看看吧

在 Java 的時間宇宙里,有兩個專門用來“丈量時間間隔”的角色,它們像兩種不同的尺子,一個量“鐘表時間”,一個量“日期跨度”。主角就是:
?? DurationPeriod
我?guī)悴痖_看,它們到底哪里不一樣。

一、Duration(時間間隔:精確到秒/納秒 ??)

Duration 用來表示基于時間的間隔,適合描述“具體流逝了多少時間”。

? 特點(diǎn)

  • 基于 秒(seconds)和納秒(nanoseconds)
  • 適合處理:
    • 時、分、秒
    • 精確時間計算
  • 常用于:
    • 接口超時
    • 任務(wù)耗時統(tǒng)計
    • 時間差計算

? 示例

Duration duration = Duration.between(startTime, endTime); 
long seconds = duration.getSeconds(); // 總秒數(shù) 
long millis = duration.toMillis(); // 轉(zhuǎn)毫秒

二、Period(日期間隔:年/月/日 ??)

Period 用來表示基于日期的間隔,關(guān)注的是“日歷上的跨度”。

? 特點(diǎn)

  • 基于 年、月、日
  • 不涉及具體時間(時分秒)
  • 常用于:
    • 年齡計算
    • 日期差(多少天/多少個月)
    • 賬期、周期計算

? 示例

Period period = Period.between(startDate, endDate);
int years = period.getYears();
int months = period.getMonths();
int days = period.getDays();

三、核心區(qū)別

對比點(diǎn)DurationPeriod
類型時間間隔日期間隔
精度秒 / 納秒年 / 月 / 日
是否包含時間? 包含(時分秒)? 不包含
適用對象LocalDateTime、InstantLocalDate
是否考慮月份長度? 不關(guān)心? 會考慮(28/30/31天)
常見用途耗時統(tǒng)計、超時控制年齡、日期差

四、舉個直觀例子 ??

假設(shè):

2024-01-01 00:00 → 2024-01-02 00:00

Duration

?? 得到:86400秒

Period

?? 得到:1天

再來一個更有意思的:

2024-01-31 → 2024-02-28

Period

?? 結(jié)果:0個月28天(因?yàn)?月沒有31號)

Duration

?? 結(jié)果:秒數(shù)差(固定值)

五、常用方法

一、Duration常用方法(時間流逝型 ??)

?? 適合:時 / 分 / 秒 / 納秒

1?? 創(chuàng)建對象

Duration.ofSeconds(60);
Duration.ofMinutes(10);
Duration.ofHours(2);
Duration.ofDays(1);
Duration.between(start, end);

2?? 獲取時間

duration.getSeconds();     // 總秒數(shù)  
duration.toMillis();       // 轉(zhuǎn)毫秒  
duration.toMinutes();      // 轉(zhuǎn)分鐘  
duration.toHours();        // 轉(zhuǎn)小時

3?? 運(yùn)算操作

duration.plusSeconds(30);  // 加30秒  
duration.minusMinutes(5);  // 減5分鐘  
duration.multipliedBy(2);  // 乘2  
duration.dividedBy(2);     // 除2

4?? 判斷

duration.isNegative();     // 是否負(fù)數(shù)  
duration.isZero();         // 是否為0

5?? 格式輸出

duration.toString(); // PT10M(ISO-8601格式)

?? 像:PT2H30M(2小時30分鐘)

二、Period常用方法(日歷跨度型 ??)

?? 適合:年 / 月 / 日

1?? 創(chuàng)建對象

Period.of(1, 2, 3);   // 1年2月3天  
Period.ofYears(2);  
Period.ofMonths(6);  
Period.ofDays(10);  
Period.between(startDate, endDate);

2?? 獲取時間

period.getYears();  
period.getMonths();  
period.getDays();

?? 注意:不是總天數(shù),而是“拆分后的年月日”

3?? 運(yùn)算操作

period.plusDays(5);  
period.minusMonths(2);  
period.multipliedBy(2);

4?? 判斷

period.isZero();  
period.isNegative();

5?? 規(guī)范化(很關(guān)鍵??)

period.normalized();

?? 作用:把 15個月 → 1年3個月

6?? 格式輸出

period.toString(); // P1Y2M3D

到此這篇關(guān)于java8時間間隔類Duration和Period示例代碼的文章就介紹到這了,更多相關(guān)java duration和period內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java垃圾回收之分代收集算法詳解

    Java垃圾回收之分代收集算法詳解

    今天小編就為大家分享一篇關(guān)于Java垃圾回收之分代收集算法詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • java中Date類和Strng類的靈活轉(zhuǎn)化

    java中Date類和Strng類的靈活轉(zhuǎn)化

    這篇文章主要介紹了java中Date類和Strng類的靈活轉(zhuǎn)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java實(shí)現(xiàn)限流接口的示例詳解

    Java實(shí)現(xiàn)限流接口的示例詳解

    限流是對某一時間窗口內(nèi)的請求數(shù)進(jìn)行限制,保持系統(tǒng)的可用性和穩(wěn)定性,防止因流量暴增而導(dǎo)致的系統(tǒng)運(yùn)行緩慢或宕機(jī),本文主要來和大家聊聊如何使用java實(shí)現(xiàn)限流接口,感興趣的可以了解下
    2023-12-12
  • Java向Runnable線程傳遞參數(shù)方法實(shí)例解析

    Java向Runnable線程傳遞參數(shù)方法實(shí)例解析

    這篇文章主要介紹了Java向Runnable線程傳遞參數(shù)方法實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • java實(shí)現(xiàn)潛艇大戰(zhàn)游戲源碼

    java實(shí)現(xiàn)潛艇大戰(zhàn)游戲源碼

    潛艇大戰(zhàn)游戲相信大家都玩過,是一款非常有趣的小游戲,那么基于代碼是如何實(shí)現(xiàn)的呢?今天小編給大家?guī)硪黄坛處椭蠹覍W(xué)習(xí)java實(shí)現(xiàn)潛艇大戰(zhàn)游戲,感謝的朋友一起看看吧
    2021-06-06
  • Java設(shè)計模式之適配器模式(Adapter模式)介紹

    Java設(shè)計模式之適配器模式(Adapter模式)介紹

    這篇文章主要介紹了Java設(shè)計模式之適配器模式(Adapter模式)介紹,本文講解了為何使用適配器模式、如何使用適配器模式等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 快速解決Java項(xiàng)目在復(fù)雜網(wǎng)絡(luò)環(huán)境下訪問外網(wǎng)不通的問題

    快速解決Java項(xiàng)目在復(fù)雜網(wǎng)絡(luò)環(huán)境下訪問外網(wǎng)不通的問題

    這篇文章主要介紹了快速解決Java項(xiàng)目在復(fù)雜網(wǎng)絡(luò)環(huán)境下訪問外網(wǎng)不通的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-10-10
  • mybatis中一對一、一對多的<association> 配置使用

    mybatis中一對一、一對多的<association> 配置使用

    <association>?是 MyBatis 中處理一對一或一對多關(guān)系的映射元素,用于處理一對一和一對多關(guān)系的映射,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • Spring Boot 驗(yàn)證碼的生成和驗(yàn)證詳解

    Spring Boot 驗(yàn)證碼的生成和驗(yàn)證詳解

    我們在做用戶登錄的時候,為了安全性考慮,會增加驗(yàn)證碼的功能,下面這篇文章主要給大家介紹了關(guān)于Spring Boot中驗(yàn)證碼的生成和驗(yàn)證的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-06-06
  • hadoop上傳文件功能實(shí)例代碼

    hadoop上傳文件功能實(shí)例代碼

    這篇文章主要介紹了hadoop上傳文件功能實(shí)例代碼,需要的朋友可以參考下
    2017-09-09

最新評論

鹰潭市| 宜昌市| 六枝特区| 漳平市| 九龙县| 京山县| 和政县| 法库县| 玉门市| 涟水县| 绥阳县| 叶城县| 新晃| 海丰县| 镇坪县| 章丘市| 报价| 太仓市| 汝城县| 灵台县| 广昌县| 金寨县| 甘德县| 青浦区| 新化县| 兴文县| 高邑县| 新河县| 金坛市| 台山市| 新津县| 新巴尔虎左旗| 枝江市| 长岭县| 屏山县| 海兴县| 吴江市| 富川| 蒙阴县| 车险| 仁化县|