Как получить 3-символьные отображаемые имена часовых поясов в библиотеке времени Java 8? - PullRequest
0 голосов
/ 01 августа 2020

Когда DST активен, я могу напечатать EDT с java.util.TimeZone следующим образом:

TimeZone.getTimeZone("America/New_York").getDisplayName(true, TimeZone.SHORT) -> Returns "EDT"

Я хочу получить те же 3 символа с новой библиотекой времени Java 8. Я пробую это, но получаю только ET:

ZonedDateTime.now().getZone().getDisplayName(TextStyle.SHORT, Locale.US) -> Returns "ET"

Есть ли способ получить трехсимвольные отображаемые имена (EST, EDT, PST, PDT и т.д. c.) В новой библиотеке, в зависимости от о статусе DST?

1 Ответ

3 голосов
/ 01 августа 2020

Вы можете использовать DateTimeFormatter таким образом

ZonedDateTime.now().format(DateTimeFormatter.ofPattern("z"))

ZoneId в вашем ZonedDateTime обычно не имеет этой информации.

...