在jdk1.8以后,對表示日期時間的類型進行了重新分類,這里出現了2個新的類,Duraction 和Period
Duraction表示:時間的區間,用來度量秒和納秒之間的時間值
Period表示:一段時間的區間,用來度量年月日和幾天之間的時間值
那清楚了這個類度量的時間范圍,那么操作api那豈不是易如反掌
如果對LocalDate LocalTime LocalDateTime Instant不熟悉的,可以看LocalDate LocalTime LocalDateTime Instant的操作與使用
public static void testDuration() { LocalTime localTime = LocalTime.now(); LocalTime localTime2 = LocalTime.of(19, 19, 19); Duration duration = Duration.between(localTime, localTime2); System.out.println(duration); System.out.println(duration.isZero()); //Duration區間是否為0 System.out.println(duration.isNegative()); //Duration區間是否為負 System.out.println(duration.getSeconds()); //Duration區間值的秒數 System.out.println(duration.getNano()); //Duration區間值的納秒數 System.out.println(duration.getUnits()); //Duration的度量單位 System.out.println(duration.toDays()); //Duration區間相差幾天 System.out.println(duration.toHours()); //Duration區間差幾小時 System.out.println(duration.toMinutes()); //Duration區間相差幾分鍾 System.out.println(duration.toMillis()); //Duration區間相差幾毫秒 //============ duration 時間區間的加減 省略 ============ }
public static void testPeriod() { LocalDate localDate = LocalDate.now(); LocalDate localDate2 = LocalDate.of(2020, 12, 12); Period period = Period.between(localDate, localDate2); System.out.println(period); System.out.println(period.isZero()); //區間是否為0 System.out.println(period.isNegative()); //區間是否為為負 System.out.println(period.getYears()); //區間的相差幾年 System.out.println(period.getMonths()); //區間的相差幾月 System.out.println(period.getDays()); //區間的相差幾日 System.out.println(period.toTotalMonths()); //區間相差多少個月 //============ duration 時間區間的加減 省略 ============ }