Класс java.time.ZoneId в Java

Опубликовано: 2 Сентября, 2022

ZoneId используется для идентификации правил, которые использовались для преобразования между LocalDateTime и Instant времени. Фактические правила, описывающие, когда и как изменяется смещение, определяются ZoneRules. Этот класс является просто идентификатором, используемым для получения основных правил. Данный подход был выбран потому, что правительство определяет правила и часто их меняет, тогда как ID является стабильным.

Существует два различных типа идентификаторов:

  1. Фиксированные смещения — это полностью разрешенное смещение от UTC/Greenwich, которое использует одно и то же смещение для всех локальных дат и времени.
  2. Географические регионы — это окрестности, в которых применяется выбранный набор правил для определения смещения от UTC/Greenwich.

Declaration ofjava.time.ZoneId class

public abstract class ZoneId extends Object implements Serializable  

Карта зон переопределяет использование коротких имен часовых поясов. Использование коротких идентификаторов зон устарело в java.util.TimeZone. Эта карта позволяет по-прежнему использовать идентификаторы с помощью фабричного метода of(String, Map). Эта карта содержит сопоставление идентификаторов, соответствующих TZDB 2005r и более поздним версиям, где «EST», «MST» и «HST» сопоставляются с идентификаторами, которые не включают летнее время.

Это отображается следующим образом:

стандартное восточное время

05:00

HST

10:00 вечера

МСТ

07:00

ДЕЙСТВОВАТЬ

Австралия/Дарвин

АЕТ

Австралия/Сидней

АГТ

Америка/Аргентина/Буэнос_Айрес

ИСКУССТВО

Африка/Каир

АСТ

Америка/Анкоридж

ДЕРЖАТЬ ПАРИ

Америка/Word_Title

BST

Азия/Дакка

КОШКА

Африка/Хараре

УНТ

Америка/Сент-Джонс

КНТ

Америка/Чикаго

СТТ

Азия/Шанхай

ЕСТЬ

Африка/Аддис-Абеба

ЕСТ

Европа/Париж

ИЭПП

Америка/Индиана/Индианаполис

ИСТ

Азия/Калькутта

JST

Азия/Токио

Массачусетский технологический институт

Тихий океан/Апиа

СЕТЬ

Азия/Ереван

НСТ

Тихоокеанский регион/Окленд

PLT

Азия/Карачи

ПНТ

Америка/Феникс

ПРТ

Америка/Пуэрто_Рико

Тихоокеанское стандартное время

Америка/Лос-Анджелес

SST

Тихий океан/Гуадалканал
ВСТ Азия/Хо_Ши_Мин

Примечание: карту нельзя изменить.

Методы класса ZoneId:

Методы Описание
равно (Объект объекта) Этот метод проверяет, равен ли этот идентификатор часового пояса другому идентификатору часового пояса.
из (временной доступ временного доступа) Этот метод получает экземпляр ZoneId из временного объекта.
получить доступную зону () Этот метод получает набор доступных идентификаторов зон.
getDisplayName (стиль TextStyle, языковой стандарт) Этот метод получает текстовое представление зоны, например «британское время» или «+02:00».
получить идентификатор () Этот метод получает уникальный идентификатор часового пояса.
получитьПравила() Этот метод получает правила часового пояса для этого идентификатора, позволяющие выполнять вычисления.
хэш-код() Хэш-код для этого идентификатора часового пояса.
нормализованный() Этот метод нормализует идентификатор часового пояса, возвращая ZoneOffset, где это возможно.
из (String zoneId) Этот метод получает экземпляр ZoneId из идентификатора, гарантируя, что идентификатор действителен и доступен для использования.
of(String zoneId, Map<String,String> aliasMap) Этот метод получает экземпляр ZoneId, используя его идентификатор, используя карту псевдонимов в дополнение к стандартным идентификаторам зоны.
ofOffset (префикс строки, смещение ZoneOffset) Этот метод получает экземпляр ZoneId, обертывающий смещение.
системные установки по умолчанию() Этот метод получает системный часовой пояс по умолчанию.
нанизывать() Этот метод выводит эту зону в виде строки, используя идентификатор.

Ниже приведен пример реализации некоторых методов: