Функция offset
Функция offset класса Clock создает новые часы, которые возвращают мгновения, смещенные на указанную длительность от исходных часов.
В первый параметр мы передаем исходные часы, во второй параметр мы передаем длительность смещения.
Импорт
import java.time.Clock
import java.time.Duration
Синтаксис
fun offset(baseClock: Clock, offsetDuration: Duration): Clock
Пример
Создадим часы с смещением на 2 часа вперед от системных часов UTC:
val 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")
Результат выполнения кода:
String "Base time: 2025-09-10T10:30:45.123Z"
String "Offset time: 2025-09-10T12:30:45.123Z"
Пример
Создадим часы с смещением на 30 минут назад от системных часов по умолчанию:
val 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")
Результат выполнения кода:
String "Base time: 2025-09-10T10:30:45.123Z"
String "Offset time: 2025-09-10T10:00:45.123Z"
Пример
Используем смещенные часы для получения текущего времени:
val offsetClock = Clock.offset(Clock.systemUTC(), Duration.ofDays(5))
val futureTime = offsetClock.instant()
println("Time in 5 days: $futureTime")
Результат выполнения кода:
String "Time in 5 days: 2025-09-15T10:30:45.123Z"
Смотрите также
-
функцию
systemUTCклассаClock,
которая возвращает часы в часовом поясе UTC -
функцию
systemDefaultZoneклассаClock,
которая возвращает системные часы в часовом поясе по умолчанию -
функцию
fixedклассаClock,
которая создает часы с фиксированным временем -
класс
Duration,
который представляет длительность времени