0

我在日光节约方面遇到了一个奇怪的问题。我有一个 Java 程序计划在每天上午 00:05 运行,但昨天它在 23:05 运行。我正在使用公历在 java 中安排这个程序。在此之前它从未在 23:05 运行,除非有人手动运行它。有谁知道这是否是日历的问题?

4

5 回答 5

3

该问题几乎可以肯定与夏令时切换有关,尽管奇怪的是它应该在午夜左右发生,因为 DST 切换通常发生在凌晨 2 点。

如果不知道您的机器设置的时区并查看您的实际代码,很难说更多。

于 2010-11-01T16:19:52.290 回答
2

不是跟夏令时有关吗?前一天晚上,世界某些地区的时间从夏令时更改为冬令时。

于 2010-11-01T16:12:10.923 回答
1

最好的猜测是,这是在旧版本的 Java 上运行的,它不恰当地认为夏令时在美国周日早上开始。

在内部,Java 将时间存储为 GMT 偏移量……特别是自 1970 年 1 月 1 日 00:00:00.000 GMT 以来的毫秒数(记录在Calendar类的描述中)。

如果您不想更新 Java 本身,您仍然可以使用Timezone Updater Tool来更新系统上安装的 Java 时区。

注意:这应该在 Java 5u6 中得到修复,除非您处于此列表中提到的其他时区之一。

于 2010-11-01T16:25:49.353 回答
1

世界 DST 时间与北美 DST 时间有时不一致。

在欧洲,DST 在 10 月的最后一个星期日更改。 http://en.wikipedia.org/wiki/Daylight_saving_time_around_the_world#Europe

在北美,DST 在 11 月的第一个星期日更改。 http://en.wikipedia.org/wiki/Daylight_saving_time_around_the_world#North_America

由于评论提供更准确的信息而进行编辑。

于 2010-11-01T16:15:45.107 回答
0

我认为,它在 00:05 运行,但在“新”(冬季)时间是 23:05。

于 2010-11-01T16:13:30.617 回答