Функция getOffset
Функция getOffset класса ZonedDateTime возвращает объект ZoneOffset, который представляет смещение времени от UTC (Coordinated Universal Time) для данного объекта.
Функция не принимает параметров и возвращает смещение, которое может быть положительным или отрицательным в зависимости от часового пояса.
Импорт
import java.time.ZonedDateTime
import java.time.ZoneOffset
Синтаксис
fun getOffset(): ZoneOffset
Пример
Получим смещение времени для объекта ZonedDateTime в часовом поясе "Europe/Moscow":
val zonedDateTime = ZonedDateTime.now()
val offset = zonedDateTime.getOffset()
println(offset)
Результат выполнения кода:
String "+03:00"
Пример
Создадим объект ZonedDateTime с конкретной датой и временем и получим его смещение:
import java.time.ZoneId
val zonedDateTime = ZonedDateTime.of(2025, 7, 15, 14, 30, 0, 0, ZoneId.of("America/New_York"))
val offset = zonedDateTime.getOffset()
println(offset)
Результат выполнения кода:
String "-04:00"
Пример
Получим отдельные компоненты смещения времени:
val zonedDateTime = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"))
val offset = zonedDateTime.getOffset()
val totalSeconds = offset.totalSeconds
val hours = totalSeconds / 3600
val minutes = (totalSeconds % 3600) / 60
println("Total seconds: $totalSeconds, Hours: $hours, Minutes: $minutes")
Результат выполнения кода:
String "Total seconds: 32400, Hours: 9, Minutes: 0"
Пример
Сравним смещения времени для разных часовых поясов:
val tokyoTime = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"))
val londonTime = ZonedDateTime.now(ZoneId.of("Europe/London"))
val tokyoOffset = tokyoTime.getOffset()
val londonOffset = londonTime.getOffset()
println("Tokyo offset: $tokyoOffset")
println("London offset: $londonOffset")
Результат выполнения кода:
String "Tokyo offset: +09:00"
String "London offset: +01:00"
Смотрите также
-
функцию
getZoneклассаZonedDateTime,
которая возвращает идентификатор часового пояса -
функцию
getOffsetклассаOffsetDateTime,
которая возвращает смещение времени -
класс
ZoneOffset,
который представляет смещение времени от UTC -
функцию
withZoneSameInstantклассаZonedDateTime,
которая преобразует время в другой часовой пояс с сохранением момента времени