Функция getDaylightSavings

Функция getDaylightSavings класса ZoneRules возвращает смещение летнего времени для указанного момента времени. В параметр мы передаем объект Instant, представляющий момент времени, для которого нужно определить смещение.

Импорт

kotlinimport java.time.Instant
import java.time.zone.ZoneRules

Синтаксис

kotlinfun getDaylightSavings(instant: Instant): Duration

Пример

Получим смещение летнего времени для зоны "Europe/Moscow" в определенный момент:

kotlinval zone = ZoneId.of("Europe/Moscow")
val rules = zone.rules
val instant = Instant.parse("2025-07-01T12:00:00Z")
val dst = rules.getDaylightSavings(instant)

println("DST offset: $dst")

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

kotlinString "DST offset: PT1H"

Пример

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

kotlinval zone = ZoneId.of("America/New_York")
val rules = zone.rules

val winterInstant = Instant.parse("2025-01-15T12:00:00Z")
val summerInstant = Instant.parse("2025-07-15T12:00:00Z")

val winterDst = rules.getDaylightSavings(winterInstant)
val summerDst = rules.getDaylightSavings(summerInstant)

println("Winter DST: $winterDst")
println("Summer DST: $summerDst")

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

kotlinString "Winter DST: PT0S"
String "Summer DST: PT1H"

Пример

Сравним смещение летнего времени с общим смещением зоны:

kotlinval zone = ZoneId.of("Europe/London")
val rules = zone.rules
val instant = Instant.parse("2025-06-15T12:00:00Z")

val totalOffset = rules.getOffset(instant)
val standardOffset = rules.getStandardOffset(instant)
val dstOffset = rules.getDaylightSavings(instant)

println("Total offset: $totalOffset")
println("Standard offset: $standardOffset")
println("DST offset: $dstOffset")

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

kotlinString "Total offset: +01:00"
String "Standard offset: Z"
String "DST offset: PT1H"

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

  • функцию getOffset класса ZoneRules,
    которая возвращает общее смещение для указанного момента
  • функцию getStandardOffset класса ZoneRules,
    которая возвращает стандартное смещение без учета летнего времени
  • функцию isDaylightSavings класса ZoneRules,
    которая проверяет действует ли летнее время для указанного момента
  • класс ZoneId,
    который представляет идентификатор часовой зоны