在Java中,如果一個或兩個日期可能在1970年之前(即Date對象不能使用),有沒有辦法找到兩個日期之間的天數?找到Java中兩個日期之間的差異
1
A
回答
2
你也可以嘗試的GregorianCalendar。 注意的是,雖然天是基於1
import java.util.GregorianCalendar;
//january, 1st, 2012
GregorianCalendar c1 = new GregorianCalendar(2012, 0, 1);
//march, 3rd, 1912
GregorianCalendar c2 = new GregorianCalendar(1912, 2, 3);
long differenceInSeconds = (c1.getTimeInMillis() - c2.getTimeInMillis())/1000;
+1
這種方法的問題在於Calendar類沒有考慮諸如閏年之類的東西(雖然這個帖子有點不相關)並且節省了白天的時間。如果您試圖計算同一年內日期之間的差異,這將起作用,但錯誤將開始蔓延,差距越來越大 – MadProgrammer
6
我強烈推薦Joda Time庫。例如:
Days.daysBetween(startDate.toDateMidnight() , endDate.toDateMidnight()).getDays()
4
咦? Date
可用於表示早於1970年的日期。只需將負數傳遞給其構造函數即可。
System.out.println(new Date(-1000));
System.out.println(new Date("Jul 4 1776")); // note: deprecated API. Just an easy example
打印
Wed Dec 31 15:59:59 PST 1969
Thu Jul 04 00:00:00 PST 1776
+0
是的,我爲此而煩惱! –
1
小心來計算這樣的時間戳的基礎天的月份是0依據:
(to.getTime() - from.getTime())/( 1000L * 60 * 60 * 24)
無論使用Date還是GregorianCalender。
如果三月份的最後一個星期日在這個時間間隔內,這在歐洲不起作用。
在歐洲時間每年切換兩次一小時。 - 冬令時==>夏令時(最後一個星期日三月) - 夏令時==>冬令時(十月最後一個週日)
所以最後一個星期日在三月份只有23小時。因此計算結果會少一天。
相關問題
- 1. 兩個Java日期之間的差異?
- 2. Java:兩個日期之間的差異
- 3. 在javascript中找到兩個日期時間之間的差異
- 4. 在Java中查找兩個日期之間的差異
- 5. 如何找到兩個日期之間的星期差異
- 6. 找到兩個日期時間之間的微小差異
- 7. PHP找到兩個日期時間之間的差異
- 8. 如何找到laravel中兩個日期之間的差異?
- 9. 找到兩個日期之間的差異的方法
- 10. Grails - 兩個日期之間的差異
- 11. VB - 兩個日期之間的差異
- 12. 兩個日期之間的差異
- 13. Javascript - 兩個日期之間的差異
- 14. 兩個表之間的日期差異
- 15. 兩個日期之間的差異
- 16. 兩個日期之間的差異python
- 17. 兩個日期之間的Ruby差異
- 18. 兩個日期()之間的JavaScript差異
- 19. 兩個日期之間的oracle差異
- 20. 兩個日期之間的差異
- 21. 兩個日期之間的差異Yii2
- 22. 在兩個日期之間的差異
- 23. 兩個日期之間的Android差異?
- 24. java中兩個日期之間的時間差異
- 25. 找到兩個日期之間的差異正好是1年
- 26. 如何找到兩個日期之間的差異
- 27. 找到兩個日期之間的差異
- 28. 在Java中使用Joda找到兩個日期之間的差異
- 29. 尋找兩個時間戳與日期之間的差異
- 30. 如何查找R中兩個日期之間的差異?
如果是在1970年以前,那麼它是如何表示的?給細節。 – oldrinb
增加一些價值(閏年爲4年的倍數),使其成爲「近期」日期,然後減去日期並添加您的套期的淨效應。這應該適用於1900年後的任何一年。在1900年之前,你必須考慮1900年**而不是**閏年。 –
'(to.getTime() - from.getTime())/(1000L * 60 * 60 * 24)' – oldrinb