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