我需要预测下一个至少2个时区转换何时适用于特定时区。
Java 8提供了新的功能 java.time
API,具体而言 java.time.zone
。 ZoneRules.getTransitions()
看起来正是我需要的,但它没有列出2010年以后的“澳大利亚/悉尼”。
确定下一个2个时区转换的日期/时间/偏移的最可靠方法是什么?
我需要预测下一个至少2个时区转换何时适用于特定时区。
Java 8提供了新的功能 java.time
API,具体而言 java.time.zone
。 ZoneRules.getTransitions()
看起来正是我需要的,但它没有列出2010年以后的“澳大利亚/悉尼”。
确定下一个2个时区转换的日期/时间/偏移的最可靠方法是什么?
方法 ZoneRules.getTransitions()
没有列出所有过渡直到无限到未来(显然)。这将获得接下来的两个转换:
ZoneId zoneId = ZoneId.of("Australia/Sydney");
ZoneRules rules = zoneId.getRules();
ZoneOffsetTransition nextTransition = rules.nextTransition(Instant.now());
System.out.println("Next transition at: " +
nextTransition.getInstant().atZone(zoneId));
ZoneOffsetTransition nextNextTransition =
rules.nextTransition(nextTransition.getInstant());
System.out.println("Next transition after that at: " +
nextNextTransition.getInstant().atZone(zoneId));
输出:
下一次转型时间:2016-10-02T03:00 + 11:00 [澳大利亚/悉尼]
之后的下一次过渡:2017-04-02T02:00 + 10:00 [澳大利亚/悉尼]