Класс ZoneRules
Класс ZoneRules
содержит правила для временной зоны, определяя исторические и будущие изменения смещения и переходы на летнее время.
Объект этого класса можно получить из ZoneId
с помощью метода getRules
.
Импорт
import java.time.zone.ZoneRules
Синтаксис
val zoneRules: ZoneRules = zoneId.rules
Пример
Получим правила для временной зоны "Europe/London"
:
import java.time.ZoneId
import java.time.zone.ZoneRules
val zoneId = ZoneId.of("Europe/London")
val rules: ZoneRules = zoneId.rules
println(rules)
Результат выполнения кода:
ZoneRules[Europe/London]
Пример
Проверим, является ли смещение фиксированным для зоны:
val zoneId = ZoneId.of("UTC")
val rules = zoneId.rules
val isFixed = rules.isFixedOffset
println("Is fixed offset: $isFixed")
Результат выполнения кода:
String "Is fixed offset: true"
Пример
Получим смещение для конкретного момента времени:
import 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")
Результат выполнения кода:
String "Current offset: -04:00"
Пример
Проверим, действует ли летнее время для указанного момента:
val instant = Instant.now()
val zoneId = ZoneId.of("Europe/Paris")
val rules = zoneId.rules
val isDst = rules.isDaylightSavings(instant)
println("Is daylight saving: $isDst")
Результат выполнения кода:
String "Is daylight saving: true"
Пример
Получим стандартное смещение для временной зоны:
val zoneId = ZoneId.of("Asia/Tokyo")
val rules = zoneId.rules
val standardOffset = rules.getStandardOffset(Instant.now())
println("Standard offset: $standardOffset")
Результат выполнения кода:
String "Standard offset: +09:00"
Смотрите также
-
класс
ZoneId
,
который представляет идентификатор временной зоны -
метод
getRules
классаZoneId
,
который возвращает правила временной зоны -
класс
ZonedDateTime
,
который представляет дату и время с временной зоной -
класс
ZoneOffset
,
который представляет фиксированное смещение от UTC