ZoneId hongKong = ZoneId.of("Asia/Hong_Kong");
System.out.println(hongKong.getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ROOT));
Это выводит:
HKT
Аналогично, выход для ZoneId.of("America/Chicago")
равен CT
для Центральное время (уведомлениечто это позволяет избежать безнадежного выбора между CST для центрального стандартного времени и CDT для центрального летнего времени).
Пожалуйста, укажите желаемый язык.Во многих случаях это не будет иметь никакого значения, в других случаях это будет, так как в некоторых часовых поясах в некоторых локалях есть локализованные сокращения.
В отличие от устаревшего класса TimeZone
современный ZoneId
проверяет строку часового поясаи выдает исключение, если оно недопустимо, поэтому мы получаем хороший шанс исправить любые ошибки.Например:
java.time.DateTimeException: неверный идентификатор для ZoneId на основе региона, недопустимый формат: Азия / Гонконг