【发布时间】:2011-02-16 06:43:55
【问题描述】:
在 Java 中是否有一个日期类,我可以用年、月、日、小时、分钟、秒和毫秒构造它,然后进行比较,给出两个日期值之间的毫秒数,忽略夏令时之类的东西,闰秒等?我可以为此使用日历类吗?我正在考虑这样做,但它谈到了闰秒和夏令时,我不希望这影响计算。
以下不变量始终成立很重要:
对于所有 y1、y2、m1、m2、d1、d2、h、m、s、ms:
(
f(y1, m1, d1, h, m, s, ms).getTimeInMillis() -
f(y2, m2, d2, h, m, s, ms).getTimeInMillis()
)
%
(24 * 60 * 60 * 1000) == 0
我基本上需要知道函数 f 应该是什么。
【问题讨论】:
-
如果您使用
Calendar与本地时区,它仍然适用闰秒吗? (对于本地时区,如果 JDK 中没有有用的值,您可以使用自己的SimpleTimeZone实例——我不记得了)。