运行以下代码:
String s = "1914-07-20T00:00:00+0200";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
System.out.println(df.parse( s ));
我得到这个结果:
Sun Jul 19 23:34:52 EET 1914(注意日期和时间)
运行以下代码:
String s = "1914-07-20T00:00:00+0200";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
System.out.println(df.parse( s ));
我得到这个结果:
Sun Jul 19 23:34:52 EET 1914(注意日期和时间)
这可能是为了让太阳在中午出现在头顶上而进行的时间调整之一。这些发生在那个时候,因为世界变得越来越小,当地时区被更普遍的时区所取代。25分钟很可能是这样的调整。您将不得不查看从那时到现在的东欧时区调整记录。
检查这一点的另一种方法是将它放在一个循环中,看看它在 1924 年和 1934 年正常工作,依此类推直到现在。在某个时候,如果它进行了这样的调整,它可能会开始工作,您可以将其缩小到一个特定的时间,在该时间下班后的所有时间和之前的所有时间都没有。不过,可以肯定的是,可能会有一系列调整。这里10分钟和那里7分钟加起来25分钟。
笔记
此页面 ( http://www.prokerala.com/travel/timezones/EET?mode=history ) 显示 1901 年 1.64444 和 1920 年 2 的 GMT 偏移量。即 39:52 分和秒。
此页面(http://home.tiscali.nl/~t876506/TZworld.html)是关于全球 tz 数据库的,显示欧洲/雅典的 LMT(本地平均时间)为 1:34:52,理论上应该+2:00。我不太确定这与它有什么关系,但正是 OP 所看到的似乎是一个奇怪的巧合。(我还发现 joda-time 使用“官方”时区数据文件中第一个条目之前的任何日期的 LMT 偏移量。