【发布时间】:2017-03-10 16:33:54
【问题描述】:
我正在使用 JDK8 zonedatetime 来获取 DST 规则,例如:
ZoneId zoneIdTmp = ZoneId.of("America/New_York");
ZoneRules rules = zoneId.getRules();
ZoneOffsetTransition nextTransition = rules.nextTransition(Instant.now());
我得到的输出如下:
2016-11-06T01:00-05:00[America/New_York]
DST 于 11 月 6 日凌晨 2 点(回到凌晨 1 点)切换。我假设上面输出中的凌晨 1:00 时间指向 DST 更改后的新时间,而 5:00 指向与 UTC 的新偏移量。我已经检查了我的本地时区数据库
zdump -v /usr/share/zoneinfo/America/New_York
那里的输出显示(大约)凌晨 2 点的时间
Sun Nov 6 05:59:59 2016 UT = Sun Nov 6 01:59:59 2016 EDT isdst=1 gmtoff=-14400
我自己没有从 JDK 输出中添加任何逻辑,有没有办法让我从 ZoneDateTime 获取凌晨 2 点时间(或跨不同区域 ID 工作的可靠工作逻辑)。
【问题讨论】: