我不确定我做错了什么,但我有一段代码可以计算两个日期之间的天数,看起来如下所示:
final Calendar first = new GregorianCalendar(2010, Calendar.OCTOBER, 1);
final Calendar last = new GregorianCalendar(2010, Calendar.NOVEMBER, 1);
final long difference = last.getTimeInMillis() - first.getTimeInMillis();
final long days = difference / (1000 * 60 * 60 * 24);
System.out.println("difference: " + difference);
System.out.println("days: " + days);
Run Code Online (Sandbox Code Playgroud)
总而言之,上面的代码块计算了2010年10月1日到2010年11月1日之间的天数.我希望看到它返回31天(看到10月份的31天)
difference: xxxx
days: 31
Run Code Online (Sandbox Code Playgroud)
但相反,它在十月份显示了30天!
difference: 2674800000
days: 30
Run Code Online (Sandbox Code Playgroud)
我已经设法将其缩小到2010年10月2日和2010年10月3日之间,这似乎只有82800000毫秒,而不是完整的86400000毫秒(正好缺少一个小时).
有没有人有任何想法我做错了什么?或者10月2日是一个比常规日少一分钟的特殊日期?
| 归档时间: |
|
| 查看次数: |
1541 次 |
| 最近记录: |