最近使用Java8編寫代碼時,需要計算時間差,現整理如下
前言
本次使用了Java8提供的ChronoUnit工具類,它主要提供以下幾種時間維度
枚舉
枚舉 | 說明 |
---|---|
NANOS | 毫微秒(毫秒的1000000分之一) |
MICROS | 微秒(毫秒的1000分之一) |
MILLIS | 毫秒 |
SECONDS | 秒 |
MINUTES | 分鍾 |
HOURS | 小時 |
HALF_DAYS | 半天 |
DAYS | 天 |
WEEKS | 周 |
MONTHS | 月 |
YEARS | 年 |
DECADES | 十年 |
CENTURIES | 世紀(百年) |
MILLENNIA | 千年 |
ERAS | 紀元(1000_000_000L年) |
枚舉提供一個betwwen方法,接收兩個參數,都是Temporal類型。
Temporal是LocalDate、LocalTime、LocalDateTime的聲明接口,因此可以直接傳遞我們常用的時間類。
示例
LocalDateTime time1 = LocalDateTime.of(2019, 11, 1, 0, 0);
LocalDateTime time2 = LocalDateTime.of(2019, 12, 2, 0, 0);
System.out.println("===輸出秒===");
System.out.println(ChronoUnit.SECONDS.between(time1, time2));
System.out.println("===========");
System.out.println("===輸出小時===");
System.out.println(ChronoUnit.HOURS.between(time1, time2));
System.out.println("===========");
System.out.println("===輸出半天===");
System.out.println(ChronoUnit.HALF_DAYS.between(time1, time2));
System.out.println("===========");
System.out.println("===輸出天===");
System.out.println(ChronoUnit.DAYS.between(time1, time2));
System.out.println("===========");
System.out.println("===輸出周===");
System.out.println(ChronoUnit.WEEKS.between(time1, time2));
System.out.println("===========");
System.out.println("===輸出月===");
System.out.println(ChronoUnit.MONTHS.between(time1, time2));
System.out.println("===========");
System.out.println("===輸出年===");
System.out.println(ChronoUnit.YEARS.between(time1, time2));
System.out.println("===========");
輸出結果
===輸出秒===
2678400
===========
===輸出小時===
744
===========
===輸出半天===
62
===========
===輸出天===
31
===========
===輸出周===
4
===========
===輸出月===
1
===========
===輸出年===
0
===========