Joda 不允许在指向 1916 年 7 月 3 日的欧洲/莫斯科时区创建 DateTime 实例:
DateTimeZone dateTimeZone = DateTimeZone.forTimeZone(TimeZone.getTimeZone("Europe/Moscow"));
Chronology internalCalendar = GJChronology.getInstance(dateTimeZone);
DateTime dt = new org.joda.time.DateTime(1916, 7, 3, 0, 0, 0, 0, internalCalendar);
// Exception thrown:
// java.lang.IllegalArgumentException: Illegal instant due to time zone offset transition: 1916-07-02T21:30:00.000
从 00:00:00 到 00:00:47 的确切时间段给出了例外。
AFAICS,俄罗斯当天没有特殊的时移事件。最接近的日期是 1917 年 7 月 1 日,夏令时首次引入。
这是 Joda 的错误还是我有什么问题?)