【发布时间】:2013-09-18 13:26:44
【问题描述】:
在Joda Time 中,可以很容易地使用DateTimeZone.isLocalDateTimeGap 方法来判断本地日期和时间是否无效,因为它落入了春季提前夏令时转换所产生的间隙。
DateTimeZone zone = DateTimeZone.forID("America/New_York");
LocalDateTime ldt = new LocalDateTime(2013, 3, 10, 2, 0);
boolean inGap = zone.isLocalDateTimeGap(ldt); // true
但是如何检测回退转换?换句话说,如果本地日期和时间由于重叠而可能不明确,您如何检测?我期待像zone.isLocalDateTimeOverlap 这样的东西,但它不存在。如果是这样,我会这样使用它:
DateTimeZone zone = DateTimeZone.forID("America/New_York");
LocalDateTime ldt = new LocalDateTime(2013, 11, 3, 1, 0);
boolean overlaps = zone.isLocalDateTimeOverlap(ldt); // true
Joda-Time 文档清楚地表明,如果在转换过程中存在重叠,除非另有说明,否则它将采用较早的可能性。但它没有说明如何检测这种行为。
【问题讨论】:
标签: java timezone jodatime dst