java.time
Я предлагаю, чтобы аббревиатура, которую вы хотите для America/Los_Angeles
, была бы PT
для Тихоокеанского времени .Это имя и эта аббревиатура могут использоваться в течение всего года независимо от летнего времени (DST).В отличие от этого PDT
относится к тихоокеанскому летнему времени , поэтому используется только летом.
ZoneId zone = ZoneId.of("America/Los_Angeles");
System.out.println("Summer time neutral abbreviation: "
+ zone.getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ENGLISH));
Выход:
Аббревиатура нейтрального летнего времени: PT
Если вы хотите, чтобы сокращение относилось только к этой части года (стандартное время или летнее время):
DateTimeFormatter zoneAbbreviationFormatter
= DateTimeFormatter.ofPattern("zzz", Locale.ENGLISH);
System.out.println("Current abbreviation for either standard or summer time: "
+ ZonedDateTime.now(zone).format(zoneAbbreviationFormatter));
Вывод при работе в мае:
Текущее сокращение для стандартного или летнего времени: PDT
Пожалуйста, укажите желаемый язык.Для многих локалей это не будет иметь никакого значения, но в некоторых часовых поясах есть локализованные сокращения для некоторых локалей.