как управлять часовым поясом, который напрямую не поддерживается в java

мы получаем объект ZoneId, передавая строку идентификатора -> ZoneId.of("US/Alaska")

При получении идентификаторов часового пояса из java после передачи имени местоположения мы получаем ошибку, которая "Exception in thread "main" java.time.zone.ZoneRulesException: Unknown time-zone ID: EST"

Мы получаем это исключение для нескольких мест, таких как -> EST, America/Argentina, America/Indiana, America/Kentucky, America/North_Dakota

Как лучше поступить в таких случаях? это хорошая идея получить объект ZoneId, передав идентификатор местоположения?

1 ответ

Вы должны указать города, а не страны (большинство из них являются городами), например, какой город в Аргентине ?

      America/Argentina/Buenos_Aires
America/Argentina/Catamarca
America/Argentina/ComodRivadavia
America/Argentina/...

Список действительных часовых поясов Java можно найти здесь ( обратитесь к комментариям для лучшего ознакомления):
https://garygregory.wordpress.com/2013/06/18/what-are-the-java-timezone-ids/


ОБНОВИТЬ:

Чтобы получить все доступные идентификаторы зон:

      Set<String> zoneIds = ZoneId.getAvailableZoneIds();
System.out.println("Available Zone Ids: \n" + String.join("\n", zoneIds));
Другие вопросы по тегам