Функция now
Функция now класса ZonedDateTime возвращает текущие дату, время и часовой пояс, полученные из системных часов.
Функция имеет несколько вариантов вызова: без параметров для использования системного часового пояса, с параметром часового пояса ZoneId или с параметром Clock для тестирования.
Импорт
import java.time.ZonedDateTime
import java.time.ZoneId
import java.time.Clock
Синтаксис
fun now(): ZonedDateTime
fun now(zone: ZoneId): ZonedDateTime
fun now(clock: Clock): ZonedDateTime
Пример
Получим текущие дату и время в системном часовом поясе:
val currentDateTime = ZonedDateTime.now()
println(currentDateTime)
Результат выполнения кода:
String "2025-09-10T14:30:45.123+03:00[Europe/Moscow]"
Пример
Получим текущие дату и время в конкретном часовом поясе:
val tokyoZone = ZoneId.of("Asia/Tokyo")
val tokyoTime = ZonedDateTime.now(tokyoZone)
println(tokyoTime)
Результат выполнения кода:
String "2025-09-10T20:30:45.123+09:00[Asia/Tokyo]"
Пример
Используем фиксированные часы для тестирования:
val fixedClock = Clock.fixed(
Instant.parse("2025-12-31T23:59:59Z"),
ZoneId.of("UTC")
)
val fixedDateTime = ZonedDateTime.now(fixedClock)
println(fixedDateTime)
Результат выполнения кода:
String "2025-12-31T23:59:59Z[UTC]"
Пример
Получим отдельные компоненты даты и времени:
val current = ZonedDateTime.now()
val year = current.year
val month = current.monthValue
val day = current.dayOfMonth
val hour = current.hour
val minute = current.minute
val zone = current.zone
println("Year: $year, Month: $month, Day: $day")
println("Time: $hour:$minute, Zone: $zone")
Результат выполнения кода:
String "Year: 2025, Month: 9, Day: 10"
String "Time: 14:30, Zone: Europe/Moscow"