Функция fixed
Функция fixed класса Clock создает объект часов с фиксированным временем.
В первый параметр мы передаем фиксированный момент времени, во второй параметр мы передаем временную зону.
Такие часы всегда возвращают одно и то же время, что полезно для тестирования.
Импорт
import java.time.Clock
import java.time.Instant
import java.time.ZoneId
Синтаксис
fun fixed(fixedInstant: Instant, zone: ZoneId): Clock
Пример
Создадим часы с фиксированным временем "2025-06-15T10:30:00Z":
val 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)
Результат выполнения кода:
String "2025-06-15T10:30:00Z"
Пример
Используем фиксированные часы для получения текущей даты:
import 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)
Результат выполнения кода:
String "2025-12-31"
Пример
Сравним фиксированные часы с системными:
val 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}")
Результат выполнения кода:
String "Fixed time: 2025-01-01T00:00:00Z"
String "System time: [текущее системное время]"
String "Times are equal: false"
Смотрите также
-
функцию
systemUTCклассаClock,
которая создает часы в UTC временной зоне -
функцию
systemDefaultZoneклассаClock,
которая создает часы в системной временной зоне -
функцию
nowклассаInstant,
которая возвращает текущий момент времени -
функцию
parseклассаInstant,
которая преобразует строку в момент времени