Функция offset

Функция offset класса Clock создает новые часы, которые возвращают мгновения, смещенные на указанную длительность от исходных часов. В первый параметр мы передаем исходные часы, во второй параметр мы передаем длительность смещения.

Импорт

kotlinimport java.time.Clock
import java.time.Duration

Синтаксис

kotlinfun offset(baseClock: Clock, offsetDuration: Duration): Clock

Пример

Создадим часы с смещением на 2 часа вперед от системных часов UTC:

kotlinval baseClock = Clock.systemUTC()
val offsetClock = Clock.offset(baseClock, Duration.ofHours(2))

val baseTime = baseClock.instant()
val offsetTime = offsetClock.instant()

println("Base time: $baseTime")
println("Offset time: $offsetTime")

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

kotlinString "Base time: 2025-09-10T10:30:45.123Z"
String "Offset time: 2025-09-10T12:30:45.123Z"

Пример

Создадим часы с смещением на 30 минут назад от системных часов по умолчанию:

kotlinval baseClock = Clock.systemDefaultZone()
val offsetClock = Clock.offset(baseClock, Duration.ofMinutes(-30))

val baseTime = baseClock.instant()
val offsetTime = offsetClock.instant()

println("Base time: $baseTime")
println("Offset time: $offsetTime")

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

kotlinString "Base time: 2025-09-10T10:30:45.123Z"
String "Offset time: 2025-09-10T10:00:45.123Z"

Пример

Используем смещенные часы для получения текущего времени:

kotlinval offsetClock = Clock.offset(Clock.systemUTC(), Duration.ofDays(5))
val futureTime = offsetClock.instant()

println("Time in 5 days: $futureTime")

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

kotlinString "Time in 5 days: 2025-09-15T10:30:45.123Z"

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

  • функцию systemUTC класса Clock,
    которая возвращает часы в часовом поясе UTC
  • функцию systemDefaultZone класса Clock,
    которая возвращает системные часы в часовом поясе по умолчанию
  • функцию fixed класса Clock,
    которая создает часы с фиксированным временем
  • класс Duration,
    который представляет длительность времени