Метод withZone
Метод withZone класса Clock создает новые часы, которые используют указанный часовой пояс.
В параметр мы передаем объект ZoneId, представляющий нужный часовой пояс.
Импорт
import java.time.Clock
import java.time.ZoneId
Синтаксис
fun withZone(zone: ZoneId): Clock
Пример
Создадим часы с системным часовым поясом по умолчанию, а затем создадим новые часы с часовым поясом "Europe/Paris":
val defaultClock = Clock.systemDefaultZone()
val parisClock = defaultClock.withZone(ZoneId.of("Europe/Paris"))
println("Default zone: " + defaultClock.zone)
println("Paris zone: " + parisClock.zone)
Результат выполнения кода:
String "Default zone: Europe/Moscow"
String "Paris zone: Europe/Paris"
Пример
Создадим часы UTC и преобразуем их в часы с тихоокеанским временем:
val utcClock = Clock.systemUTC()
val pacificClock = utcClock.withZone(ZoneId.of("America/Los_Angeles"))
val utcTime = utcClock.instant()
val pacificTime = pacificClock.instant()
println("UTC time: " + utcTime)
println("Pacific time: " + pacificTime)
Результат выполнения кода:
String "UTC time: 2025-07-15T10:30:45Z"
String "Pacific time: 2025-07-15T10:30:45Z"
Пример
Сравним время, полученное из часов с разными часовыми поясами:
val systemClock = Clock.systemDefaultZone()
val tokyoClock = systemClock.withZone(ZoneId.of("Asia/Tokyo"))
val systemTime = systemClock.instant()
val tokyoTime = tokyoClock.instant()
println("System time: " + systemTime)
println("Tokyo time: " + tokyoTime)
println("Times are equal: " + systemTime.equals(tokyoTime))
Результат выполнения кода:
String "System time: 2025-07-15T10:30:45Z"
String "Tokyo time: 2025-07-15T10:30:45Z"
String "Times are equal: true"
Смотрите также
-
метод
systemDefaultZoneклассаClock,
который создает часы с системным часовым поясом по умолчанию -
метод
systemUTCклассаClock,
который создает часы с часовым поясом UTC -
метод
getZoneклассаClock,
который возвращает часовой пояс текущих часов -
класс
ZoneId,
который представляет идентификатор часового пояса