java類實(shí)現(xiàn)日期的時(shí)間差的實(shí)例講解
我們在對不同時(shí)間的間隔上,如果是同一天的時(shí)間計(jì)算,尚且是可以手動(dòng)算一下。如果加上日期的條件限制,那么手動(dòng)的計(jì)算會(huì)比較困難。但是在java中我們調(diào)用類來進(jìn)行解決,這樣能節(jié)約不少的使用,也不容易計(jì)算失誤。下面我們就Period、Duration、ChronoUnit類的計(jì)算方法帶來介紹。
1.Period類
方法getYears(),getMonths()和getDays()
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 日", p.getYears(), p.getMonths(), p.getDays()); }}
Today : 2017-06-16BirthDate : 1993-10-19年齡 : 23 年 7 月 28 日
2.Duration類
基于時(shí)間的值(如秒,納秒)測量時(shí)間量的方法。
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()); }}
Inst1 : 2017-06-16T07:46:45.085Z
Inst2 : 2017-06-16T07:46:55.085Z
Difference in milliseconds : 10000Difference in seconds : 10
3.ChronoUnit類
ChronoUnit類可用于在單個(gè)時(shí)間單位內(nèi)測量一段時(shí)間,例如天數(shù)或秒。
以下是使用between()方法來查找兩個(gè)日期之間的區(qū)別的示例。
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); }}
開始時(shí)間 : 1993-10-19
結(jié)束時(shí)間 : 2017-06-16
兩天之間的差在天數(shù) : 8641
到此這篇關(guān)于java類實(shí)現(xiàn)日期的時(shí)間差的實(shí)例講解的文章就介紹到這了,更多相關(guān)java類實(shí)現(xiàn)日期的時(shí)間差內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Java編程規(guī)約(命名風(fēng)格、常量定義、代碼格式)
這篇文章主要介紹了詳解Java編程規(guī)約(命名風(fēng)格、常量定義、代碼格式),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-10-10Java設(shè)計(jì)模式中裝飾者模式應(yīng)用詳解
裝飾者模式:在不改變原有對象的基礎(chǔ)之上,動(dòng)態(tài)的將功能附加到對象上,提供了繼承更有彈性的替代方案,也體現(xiàn)了開閉原則。本文將通過示例詳細(xì)講解一下裝飾者模式,需要的可以參考一下2022-11-11淺談Java并發(fā) J.U.C之AQS:CLH同步隊(duì)列
AQS內(nèi)部維護(hù)著一個(gè)FIFO隊(duì)列,該隊(duì)列就是CLH同步隊(duì)列。下面小編來簡單介紹下這個(gè)隊(duì)列2019-05-05Java數(shù)組聲明、創(chuàng)建、初始化基礎(chǔ)
本文講述了Java數(shù)組的幾個(gè)相關(guān)的方面,講述了對Java數(shù)組的聲明、創(chuàng)建和初始化,并給出其對應(yīng)的代碼2012-12-12設(shè)置Myeclipse中的代碼格式化、注釋模板及保存時(shí)自動(dòng)格式化
這篇文章主要介紹了設(shè)置Myeclipse中的代碼格式化、注釋模板及保存時(shí)自動(dòng)格式化方法,需要的朋友可以參考下2014-10-10關(guān)于idea的gitignore文件編寫及解決ignore文件不生效問題
這篇文章主要介紹了idea的gitignore文件編寫及解決ignore文件不生效問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03