東西似乎不正確,我只是不知道我可以如何解決它。不同的時間間隔util.date和DAYS.between(本地時間)
我想知道2日期之間的天數差異。現在我實現了一個功能,它計算到天,從毫秒的差異爲util.date對象
public long calculateNumberOfDays(Date from, Date to) {
return (to.getTime() - from.getTime())/(1000*60*60*24);
}
我的JUnit測試告訴我,有這個功能的錯誤,所以我重寫它使用LOCALDATE的和ChronoUnit。 DAYS.between函數。它像一個魅力。
想知道什麼這兩個函數之間的差異,我寫了這個小測試:
for(int numberDays = 1; numberDays<10; numberDays++){
LocalDate fromLD = LocalDate.now();
LocalDate toLD = fromLD.plusDays(numberDays);
Date fromD = Date.valueOf(fromLD);
Date toD = Date.valueOf(toLD);
long diffMS = toD.getTime() - fromD.getTime();
double diffDays = diffMS/(1000*60*60*24);
long numDaysDate = DAYS.between(fromLD, toLD);
System.out.println(numberDays+" = "+diffDays+"/"+numDaysDate);
}
它帶來了以下的輸出:
1 = 1.0/1
2 = 2.0/2
3 = 3.0/3
4 = 4.0/4
5 = 4.0/5
6 = 5.0/6
7 = 6.0/7
8 = 7.0/8
9 = 8.0/9
能有人向我解釋,如何這個有可能? (1-4它工作,5-9 util.date已經損失了一天)
貌似夏令時間即將開始.... –
我沒有知道今年我們節省了一整天的時間:P – Nexxurs
我已經給出了答案,但整數(或長整數)的部分向下舍入 –