Статический метод tick

Статический метод tick класса Clock создает объект часов, который возвращает текущее время, округленное до ближайшего заданного интервала. В первый параметр мы передаем базовые часы, во второй параметр передаем длительность интервала дискретизации.

Импорт

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

Синтаксис

kotlinfun tick(baseClock: Clock, tickDuration: Duration): Clock

Пример

Создадим часы с интервалом дискретизации 10 секунд:

kotlinval baseClock = Clock.systemUTC()
val tickClock = Clock.tick(baseClock, Duration.ofSeconds(10))
val instant = tickClock.instant()

println("Base clock: " + baseClock.instant())
println("Tick clock: " + instant)

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

kotlinString "Base clock: 2025-01-15T10:23:47.123Z"
String "Tick clock: 2025-01-15T10:23:40Z"

Пример

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

kotlinval systemClock = Clock.systemDefaultZone()
val minuteTickClock = Clock.tick(systemClock, Duration.ofMinutes(1))

val currentTime = minuteTickClock.instant()
println("Minute tick time: " + currentTime)

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

kotlinString "Minute tick time: 2025-01-15T10:23:00Z"

Пример

Сравним время базовых часов и часов с дискретизацией в 500 миллисекунд:

kotlinval 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")

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

kotlinString "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,
    который создает длительность в секундах