Класс ZoneRules

Класс ZoneRules содержит правила для временной зоны, определяя исторические и будущие изменения смещения и переходы на летнее время. Объект этого класса можно получить из ZoneId с помощью метода getRules.

Импорт

kotlinimport java.time.zone.ZoneRules

Синтаксис

kotlinval zoneRules: ZoneRules = zoneId.rules

Пример

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

kotlinimport java.time.ZoneId
import java.time.zone.ZoneRules

val zoneId = ZoneId.of("Europe/London")
val rules: ZoneRules = zoneId.rules
println(rules)

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

kotlinZoneRules[Europe/London]

Пример

Проверим, является ли смещение фиксированным для зоны:

kotlinval zoneId = ZoneId.of("UTC")
val rules = zoneId.rules
val isFixed = rules.isFixedOffset
println("Is fixed offset: $isFixed")

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

kotlinString "Is fixed offset: true"

Пример

Получим смещение для конкретного момента времени:

kotlinimport java.time.Instant
import java.time.ZoneId

val instant = Instant.now()
val zoneId = ZoneId.of("America/New_York")
val rules = zoneId.rules
val offset = rules.getOffset(instant)
println("Current offset: $offset")

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

kotlinString "Current offset: -04:00"

Пример

Проверим, действует ли летнее время для указанного момента:

kotlinval instant = Instant.now()
val zoneId = ZoneId.of("Europe/Paris")
val rules = zoneId.rules
val isDst = rules.isDaylightSavings(instant)
println("Is daylight saving: $isDst")

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

kotlinString "Is daylight saving: true"

Пример

Получим стандартное смещение для временной зоны:

kotlinval zoneId = ZoneId.of("Asia/Tokyo")
val rules = zoneId.rules
val standardOffset = rules.getStandardOffset(Instant.now())
println("Standard offset: $standardOffset")

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

kotlinString "Standard offset: +09:00"

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

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