Класс ZoneRulesProvider

Класс ZoneRulesProvider является абстрактным базовым классом, который предоставляет правила временных зон для системы java.time. Он загружает правила для идентификаторов зон и управляет доступными временными зонами. В первый параметр метода getRules мы передаем идентификатор зоны, во второй параметр метода getVersions передаем идентификатор зоны для получения доступных версий правил.

Импорт

kotlinimport java.time.zone.ZoneRulesProvider

Синтаксис

kotlinabstract fun getRules(zoneId: String, forCaching: Boolean): ZoneRules
kotlinabstract fun getAvailableZoneIds(): Set<String>
kotlinabstract fun getVersions(zoneId: String): NavigableSet<String>
kotlinfun refresh(): Boolean

Пример

Получим правила для временной зоны "Europe/London":

kotlinval rules = ZoneRulesProvider.getRules("Europe/London", false)
val offset = rules.getOffset(Instant.now())
println("Current offset: $offset")

Результат выполнения кода:

kotlinString "Current offset: Z"

Пример

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

kotlinval zoneIds = ZoneRulesProvider.getAvailableZoneIds()
println("Total zones: ${zoneIds.size}")
println("First 5 zones: ${zoneIds.take(5)}")

Результат выполнения кода:

kotlinString "Total zones: 600"
String "First 5 zones: [Asia/Aden, America/Cuiaba, Etc/GMT+9, Etc/GMT+8, Africa/Nairobi]"

Пример

Проверим, поддерживает ли зона "America/New_York" переход на летнее время:

kotlinval rules = ZoneRulesProvider.getRules("America/New_York", false)
val isDst = rules.isDaylightSavings(Instant.now())
println("Is daylight saving: $isDst")

Результат выполнения кода:

kotlinString "Is daylight saving: true"

Пример

Обновим кэш правил временных зон:

kotlinval refreshed = ZoneRulesProvider.refresh()
println("Rules refreshed: $refreshed")

Результат выполнения кода:

kotlinString "Rules refreshed: false"

Смотрите также

  • класс ZoneId,
    который представляет идентификатор временной зоны
  • класс ZoneRules,
    который содержит правила временной зоны
  • класс ZonedDateTime,
    который представляет дату и время с временной зоной
  • метод getRules класса ZoneId,
    который возвращает правила для временной зоны