Date对象和Calendar之间的日期计算不同

Loc*_*Loc 3 java datetime calendar date

我正在编写一个代码来添加当前日期的天数.我有2个解决方案:

解决方案1

Date current = new Date();

// Add 100 days
Date d = new Date ( current.getTime() + 100 * 24 * 60 * 60 * 1000 );

System.out.println(d);
Run Code Online (Sandbox Code Playgroud)

解决方案2

Date current = new Date();

GregorianCalendar c = new GregorianCalendar();
c.setTime(current);
c.add(Calendar.DATE, 100);

System.out.println(c.getTime());
Run Code Online (Sandbox Code Playgroud)

结果

SOLUTION 1: Sat Apr 05 14:56:33 CDT 2014

SOLUTION 2: Sat Apr 05 13:56:33 CDT 2014
Run Code Online (Sandbox Code Playgroud)

solution_2的结果比solution_11小时的结果少.

有人有什么想法吗?谢谢!

NPE*_*NPE 9

解决方案2考虑了夏令时,而解决方案1却没有.因此差异.

在从夏季到冬季转换的日子,反之亦然,第一种方法假定,这一天不是24小时.