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

java8時(shí)間間隔類Duration和Period示例代碼

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

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

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

Duration 用來(lái)表示基于時(shí)間的間隔,適合描述“具體流逝了多少時(shí)間”。

? 特點(diǎn)

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

? 示例

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

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

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

? 特點(diǎn)

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

? 示例

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

三、核心區(qū)別

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

四、舉個(gè)直觀例子 ??

假設(shè):

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

Duration

?? 得到:86400秒

Period

?? 得到:1天

再來(lái)一個(gè)更有意思的:

2024-01-31 → 2024-02-28

Period

?? 結(jié)果:0個(gè)月28天(因?yàn)?月沒(méi)有31號(hào))

Duration

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

五、常用方法

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

?? 適合:時(shí) / 分 / 秒 / 納秒

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

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

2?? 獲取時(shí)間

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

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小時(shí)30分鐘)

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

?? 適合:年 / 月 / 日

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

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

2?? 獲取時(shí)間

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個(gè)月 → 1年3個(gè)月

6?? 格式輸出

period.toString(); // P1Y2M3D

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    潛艇大戰(zhàn)游戲相信大家都玩過(guò),是一款非常有趣的小游戲,那么基于代碼是如何實(shí)現(xiàn)的呢?今天小編給大家?guī)?lái)一篇教程幫助大家學(xué)習(xí)java實(shí)現(xiàn)潛艇大戰(zhàn)游戲,感謝的朋友一起看看吧
    2021-06-06
  • Java設(shè)計(jì)模式之適配器模式(Adapter模式)介紹

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

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

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

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

    mybatis中一對(duì)一、一對(duì)多的<association> 配置使用

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

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

    我們?cè)谧鲇脩舻卿浀臅r(shí)候,為了安全性考慮,會(huì)增加驗(yàn)證碼的功能,下面這篇文章主要給大家介紹了關(guān)于Spring Boot中驗(yàn)證碼的生成和驗(yàn)證的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。
    2017-06-06
  • hadoop上傳文件功能實(shí)例代碼

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

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

最新評(píng)論

洪洞县| 沙河市| 句容市| 海丰县| 达日县| 手游| 丹寨县| 开远市| 安国市| 黄石市| 视频| 舞阳县| 固阳县| 磐石市| 华池县| 化德县| 厦门市| 井冈山市| 永登县| 吉木乃县| 昌邑市| 夏邑县| 台山市| 南乐县| 虹口区| 承德县| 四川省| 临湘市| 古浪县| 类乌齐县| 都江堰市| 通海县| 凤台县| 靖州| 上蔡县| 鄂托克前旗| 济源市| 锦屏县| 洛阳市| 镇原县| 麻阳|