【发布时间】:2015-09-16 05:31:05
【问题描述】:
我想精确计算从给定日期开始一周的时间,但我得到的输出提前一小时。
代码:
long DURATION = 7 * 24 * 60 * 60 * 1000;
System.out.println(" now: " + new Date(System.currentTimeMillis()));
System.out.println("next week: " + new Date(System.currentTimeMillis() + DURATION));
输出:
now: Wed Sep 16 09:52:36 IRDT 2015
next week: Wed Sep 23 08:52:36 IRST 2015
如何正确计算?
【问题讨论】:
-
使用 Java 8 的 Time API,使用 JodaTime,使用
Calendar以保持理智,但不要尝试使用毫秒算术 -
@MadProgrammer 实际上,如果你还没有使用 Joda Time,现在你最好改用threetenbp
-
不确定CalendarUtil 或Date time library for gwt 是否有帮助
-
您的原始程序运行正常。 “Wed Sep 16 09:52:36 IRDT 2015”和“Wed Sep 23 08:52:36 IRST 2015”之间的差正好是一周。如果第二个日期是“Wed Sep 23 09:52:36 IRST 2015”,则差异将是一周零一小时,这不符合您“精确计算一周时间”的要求。还是您的意思是“大约一周内同一工作日的同一时间”?
-
Duh duh du-daaaah,Rule #9