Ответ 1
Метод 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 [Австралия/Сидней]