Статический метод tick
Статический метод tick класса Clock создает объект часов, который возвращает текущее время, округленное до ближайшего заданного интервала.
В первый параметр мы передаем базовые часы, во второй параметр передаем длительность интервала дискретизации.
Импорт
import java.time.Clock
import java.time.Duration
Синтаксис
fun tick(baseClock: Clock, tickDuration: Duration): Clock
Пример
Создадим часы с интервалом дискретизации 10 секунд:
val baseClock = Clock.systemUTC()
val tickClock = Clock.tick(baseClock, Duration.ofSeconds(10))
val instant = tickClock.instant()
println("Base clock: " + baseClock.instant())
println("Tick clock: " + instant)
Результат выполнения кода:
String "Base clock: 2025-01-15T10:23:47.123Z"
String "Tick clock: 2025-01-15T10:23:40Z"
Пример
Используем часы с дискретным временем для получения текущего момента с интервалом в 1 минуту:
val systemClock = Clock.systemDefaultZone()
val minuteTickClock = Clock.tick(systemClock, Duration.ofMinutes(1))
val currentTime = minuteTickClock.instant()
println("Minute tick time: " + currentTime)
Результат выполнения кода:
String "Minute tick time: 2025-01-15T10:23:00Z"
Пример
Сравним время базовых часов и часов с дискретизацией в 500 миллисекунд:
val base = Clock.systemUTC()
val tickClock = Clock.tick(base, Duration.ofMillis(500))
val baseTime = base.instant()
val tickTime = tickClock.instant()
println("Base time: " + baseTime)
println("Tick time: " + tickTime)
println("Difference: " + Duration.between(tickTime, baseTime).toMillis() + "ms")
Результат выполнения кода:
String "Base time: 2025-01-15T10:23:47.350Z"
String "Tick time: 2025-01-15T10:23:47.000Z"
String "Difference: 350ms"
Смотрите также
-
метод
systemUTCклассаClock,
который возвращает часы системного времени UTC -
метод
systemDefaultZoneклассаClock,
который возвращает часы системного времени в часовом поясе по умолчанию -
метод
fixedклассаClock,
который создает часы с фиксированным временем -
метод
ofSecondsклассаDuration,
который создает длительность в секундах