日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java8中使用以下类计算日期时间差:Period、Duration、ChronoUnit

發(fā)布時(shí)間:2024/2/28 java 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java8中使用以下类计算日期时间差:Period、Duration、ChronoUnit 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.簡(jiǎn)述

在Java8中,我們可以使用以下類來計(jì)算日期時(shí)間差異:

1.Period 2.Duration 3.ChronoUnit

二.Period類

主要是Period類方法getYears(),getMonths()和getDays()來計(jì)算.

示例:

package insping;import java.time.LocalDate;import java.time.Month;import java.time.Period;public class Test {public static void main(String[] args) {LocalDate today = LocalDate.now();System.out.println("Today : " + today);LocalDate birthDate = LocalDate.of(1993, Month.OCTOBER, 19);System.out.println("BirthDate : " + birthDate);Period p = Period.between(birthDate, today);System.out.printf("年齡 : %d 年 %d 月 %d 日",Math.abs( p.getYears()), Math.abs(p.getMonths()) , p.getDays());}}

結(jié)果:

Today : 2017-06-16 BirthDate : 1993-10-19 年齡 : 23 年 7 月 28 日

三.Duration類

提供了使用基于時(shí)間的值(如秒,納秒)測(cè)量時(shí)間量的方法。
示例:

package insping;import java.time.Duration;import java.time.Instant;public class Test {public static void main(String[] args) {Instant inst1 = Instant.now();System.out.println("Inst1 : " + inst1);Instant inst2 = inst1.plus(Duration.ofSeconds(10));System.out.println("Inst2 : " + inst2);System.out.println("Difference in milliseconds : " + Duration.between(inst1, inst2).toMillis());System.out.println("Difference in seconds : " + Duration.between(inst1, inst2).getSeconds());}}

結(jié)果:

Inst1 : 2017-06-16T07:46:45.085Z Inst2 : 2017-06-16T07:46:55.085Z Difference in milliseconds : 10000 Difference in seconds : 10

四.ChronoUnit類

ChronoUnit類可用于在單個(gè)時(shí)間單位內(nèi)測(cè)量一段時(shí)間,例如天數(shù)或秒。
以下是使用between()方法來查找兩個(gè)日期之間的區(qū)別的示例。

package insping;import java.time.LocalDate; import java.time.Month; import java.time.temporal.ChronoUnit;public class Test {public static void main(String[] args) {LocalDate startDate = LocalDate.of(1993, Month.OCTOBER, 19);System.out.println("開始時(shí)間 : " + startDate);LocalDate endDate = LocalDate.of(2017, Month.JUNE, 16);System.out.println("結(jié)束時(shí)間 : " + endDate);long daysDiff = ChronoUnit.DAYS.between(startDate, endDate);System.out.println("兩天之間的差在天數(shù) : " + daysDiff);}}

結(jié)果:

開始時(shí)間 : 1993-10-19結(jié)束時(shí)間 : 2017-06-16兩天之間的差在天數(shù) : 8641

以下是別的demo的應(yīng)用

LocalDate startDate = LocalDate.parse("2016-04-10"); // LocalDate startDate = LocalDate.parse("2016-10-11 10:30:01", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); // LocalDate startDate = LocalDate.of(2016, 12, 31);// LocalDate endDate = LocalDate.parse("2017-01-10");LocalDate endDate = LocalDate.now();// System.out.println(startDate.toString()); // System.out.println(endDate.toString());Period period = Period.between(startDate, endDate);Period period1 = Period.ofMonths(2);System.out.println("period1 = " + period1.getMonths());

?

總結(jié)

以上是生活随笔為你收集整理的Java8中使用以下类计算日期时间差:Period、Duration、ChronoUnit的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。