【发布时间】:2012-06-05 16:48:11
【问题描述】:
对于在苏黎世运行的 Java 程序,“Januray, 1st 1000”的正确时区偏移量是多少?
背景:当我使用 joda-time 2.1 时,
new DateTime( 1000, 1, 1, 0, 0, 0, 0, DateTimeZone.forID( "Europe/Zurich" ) ).toString()
给我
1000-01-01T00:00:00.000+00:34:08
这似乎很奇怪,因为时区偏移00:34:08(34:08 分钟偏移??)。查看IANA Timezone Database 中的europe 条目,我看到了:
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Europe/Zurich 0:34:08 - LMT 1848 Sep 12
0:29:44 - BMT 1894 Jun # Bern Mean Time
1:00 Swiss CE%sT 1981
1:00 EU CE%sT
这给出了 1848 年 9 月 12 日之前的所有时间 34:08 的偏移量,这似乎不正确。
有人能解释一下吗?
【问题讨论】:
-
在时区标准化之前,它们纯粹基于当地人的想法,即中午是什么时候,通常中午是天空中太阳最高的时候。这可以是任何偏移量。人们通常会在日出时开始新的一天,并在日落时分睡觉。
-
我不得不问你为什么需要这个:-)?
-
我有一个日期验证例程,它使用时间范围
[1.1.1000 ... 1.1.3000)单元测试在使用不同的时区运行以及 DST 切换时失败。我要么得到toString()/format()或getMillis()的不同结果。 -
@AaronDigulla - 这并没有真正回答问题:-)