Есть ли способ канонизировать идентификаторы часовых поясов с помощью API java.time?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Есть ли способ канонизировать идентификаторы часовых поясов с помощью API java.time?

Сообщение Anonymous »

Некоторые часовые пояса являются псевдонимами других часовых поясов. Например, на момент написания Европа/Скопье и Европа/Загреб связаны с Европой/Белградом.
В Joda Time эти псевдонимы можно разрешить с помощью DateTimeZone.forID(id).getID(), поскольку DateTimeZone.forID() следует по этим ссылкам, чтобы вернуть канонический часовой пояс.
Можно ли сделать что-то подобное с java.time API?
Некоторые вещи, которые я пробовал:
  • Код: Выделить всё

    ZoneId.of(id)
    выдаст исключение, если идентификатор не существует, но не будет разрешать ссылки: ZoneId.of("Europe/Skopje").getId() возвращает "Europe/Skopje", а не "Europe/Belgrade".
  • Код: Выделить всё

    ZoneId.of(id).normalized()
    канонизирует только часовые пояса с фиксированным смещением, поэтому, как я вижу, здесь нет ничего полезного.
  • Все эти часовые пояса возвращаются ZoneId.getAvailableZoneIds(), и можно запросить правила каждого из них через ZoneId.getRules(), поэтому, учитывая, что правила будут одинаковыми для канонической зоны и всех связанных зон, это Можно определить, что, скажем, Европа/Белград, Европа/Скопье и Европа/Загреб эквивалентны, но невозможно определить, какой из них является каноническим. (Я также не совсем уверен, что наличие равных правил обязательно означает, что два часовых пояса обязательно связаны.)


Подробнее здесь: https://stackoverflow.com/questions/783 ... -time-apis
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»