Mor*_*rri 5 java calendar date timeunit
我正在尝试计算两天之间的天数差异.出于某种原因,比较01-03-2013和01-04-2013给出结果30,比较01-03-2013和31-03-2013
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(2013, Calendar.MARCH, 1);
Date start = cal.getTime();
cal.set(2013, Calendar.APRIL, 1);
Date end = cal.getTime();
long days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());
System.out.println("!!! Amount of days : " + String.valueOf(days));
>> 30
cal.set(2013, Calendar.MARCH, 1);
start = cal.getTime();
cal.set(2013, Calendar.MARCH, 31);
end = cal.getTime();
days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());
System.out.println("!!! Amount of days : " + String.valueOf(days));
>> 30
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
如果在3月31日的时区开始夏令时,您将获得这些结果.
在3月1日至4月1日期间,由于夏令时的开始,您有30个24小时工作日和一个23个工作小时工作日.如果您将总毫秒数除以24 x 60 x 60 x 1000,那么您将获得30加23/24.这将向下舍入到30.
| 归档时间: |
|
| 查看次数: |
6116 次 |
| 最近记录: |