как управлять часовым поясом, который напрямую не поддерживается в 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));