Функция withLaterOffsetAtOverlap

Функция withLaterOffsetAtOverlap класса ZonedDateTime возвращает копию объекта с более поздним смещением при переходе на летнее время. Эта функция используется в ситуациях, когда локальное время попадает в период перекрытия часовых поясов, и позволяет явно выбрать версию времени с более поздним смещением.

Импорт

kotlinimport java.time.ZonedDateTime

Синтаксис

kotlinfun withLaterOffsetAtOverlap(): ZonedDateTime

Пример

Создадим объект ZonedDateTime и применим функцию withLaterOffsetAtOverlap:

kotlinval zdt = ZonedDateTime.parse("2025-03-09T02:30:00-05:00[America/New_York]")
val result = zdt.withLaterOffsetAtOverlap()
println("Original: $zdt")
println("With later offset: $result")

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

kotlinString "Original: 2025-03-09T02:30-05:00[America/New_York]"
String "With later offset: 2025-03-09T02:30-04:00[America/New_York]"

Пример

Сравним смещения до и после применения функции:

kotlinval zdt = ZonedDateTime.parse("2025-11-02T01:30:00-04:00[America/New_York]")
val laterZdt = zdt.withLaterOffsetAtOverlap()

val originalOffset = zdt.offset
val laterOffset = laterZdt.offset

println("Original offset: $originalOffset")
println("Later offset: $laterOffset")

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

kotlinString "Original offset: -04:00"
String "Later offset: -05:00"

Пример

Проверим работу функции в обычное время (без перекрытия):

kotlinval zdt = ZonedDateTime.parse("2025-06-15T10:30:00-04:00[America/New_York]")
val result = zdt.withLaterOffsetAtOverlap()
println("Original: $zdt")
println("Result: $result")
println("Are equal: ${zdt == result}")

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

kotlinString "Original: 2025-06-15T10:30-04:00[America/New_York]"
String "Result: 2025-06-15T10:30-04:00[America/New_York]"
String "Are equal: true"

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

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