Функция fixed

Функция fixed класса Clock создает объект часов с фиксированным временем. В первый параметр мы передаем фиксированный момент времени, во второй параметр мы передаем временную зону. Такие часы всегда возвращают одно и то же время, что полезно для тестирования.

Импорт

kotlinimport java.time.Clock
import java.time.Instant
import java.time.ZoneId

Синтаксис

kotlinfun fixed(fixedInstant: Instant, zone: ZoneId): Clock

Пример

Создадим часы с фиксированным временем "2025-06-15T10:30:00Z":

kotlinval fixedInstant = Instant.parse("2025-06-15T10:30:00Z")
val zone = ZoneId.of("Europe/Moscow")
val clock = Clock.fixed(fixedInstant, zone)

val currentInstant = clock.instant()
println(currentInstant)

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

kotlinString "2025-06-15T10:30:00Z"

Пример

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

kotlinimport java.time.LocalDate

val fixedInstant = Instant.parse("2025-12-31T23:59:59Z")
val clock = Clock.fixed(fixedInstant, ZoneId.systemDefault())

val currentDate = LocalDate.now(clock)
println(currentDate)

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

kotlinString "2025-12-31"

Пример

Сравним фиксированные часы с системными:

kotlinval fixedClock = Clock.fixed(Instant.parse("2025-01-01T00:00:00Z"), ZoneId.of("UTC"))
val systemClock = Clock.systemUTC()

val fixedTime = fixedClock.instant()
val systemTime = systemClock.instant()

println("Fixed time: $fixedTime")
println("System time: $systemTime")
println("Times are equal: ${fixedTime == systemTime}")

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

kotlinString "Fixed time: 2025-01-01T00:00:00Z"
String "System time: [текущее системное время]"
String "Times are equal: false"

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

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