在Android上使用JODA的DateTime()构造函数初始化时的奇怪行为

时间:2015-03-04 16:22:38

标签: java android date datetime jodatime

我遇到了JODA的时间构造函数的奇怪行为。

所以我执行以下行

DateTime d1 = new DateTime("1972-01-01T10:00:00.000+00:00");
DateTime d2 = new DateTime("1970-01-01T10:00:00.000+00:00");
String s1 = d1.toString();
String s2 = d2.toString();

并看到

s1 = 1972-01-01T10:00:00.000Z
s2 = 1970-01-01T11:00:00.000+01:00

好的,我知道DateTime的默认时区,但是为什么不同的调用会返回具有不同时区的时间对象?

如果您尝试更改1972年的第一年 - > 1971年,您会看到另一张图片

s1 = 1971-01-01T11:00:00.000+01:00
s2 = 1970-01-01T11:00:00.000+01:00

我当前的时区是+1(欧洲/柏林)。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我无法为Europe/Berlin时区重现这一点,但这是我用Europe/London获得的结果,这三年。

而iirc的原因是,在70年代初期,英国处于整个冬季都保持+1的时期。因此,在欧洲/伦敦表达的纪元时间实际上是1970-01-01T01:00:00+01:00