下面这段代码:
TimeZone.getTimeZone("Europe/Athens").inDaylightTime(new Date(200, 8, 14));
返回 true
,与 2011 年非常相似。但是,Daylight Saving Time (DST) 大约在 100 年前才被提出,并且在最近才得到应用。 200 年的时间是否被视为夏令时,或者这是 Java 的怪癖?
最佳答案
你错了。当您使用日期 new Date(-1700, 8, 14)
(即年份 200
)时,它会按预期工作。您正在使用的构造函数正在将 1900
添加到您的年份。您实际上使用的是年份 2100
。
检查 Date constructor应用程序接口(interface)。
关于Java 夏令时不适用于遥远的过去(更新 : It does)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232750/