阳历日历

时间:2010-11-01 16:10:24

标签: java gregorian-calendar java-5

我遇到了日光节省的奇怪问题。我有一个java程序计划在每天凌晨00:05运行,但昨天它运行于23:05。我正在使用格里高利历来在java中安排这个程序。它从未在23:05之前运行,除非有人手动运行它。有谁知道这是否与日历有关?

5 个答案:

答案 0 :(得分:3)

这个问题几乎肯定与夏令时开关有关,但奇怪的是它应该在午夜左右发生,因为DST开关通常发生在凌晨2点。

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

答案 1 :(得分:2)

是否与日光节约问题有关?前一天晚上,世界某些地方的时间从夏季变为冬季。

答案 2 :(得分:1)

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

在欧洲,DST在10月的最后一个星期日发生了变化。 http://en.wikipedia.org/wiki/Daylight_saving_time_around_the_world#Europe

在北美,夏令时在11月的第一个星期日发生变化。 http://en.wikipedia.org/wiki/Daylight_saving_time_around_the_world#North_America

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

答案 3 :(得分:1)

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

在内部,Java将时间存储为GMT偏移...具体而言,自1970年1月1日00:00:00.000 GMT以来的毫秒数(记录在Calendar类的描述中)。

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

注意:这应该在Java 5u6中修复,除非你处于this list中提到的其他时区之一。

答案 4 :(得分:0)

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