Функция getOffset

Функция getOffset класса ZonedDateTime возвращает объект ZoneOffset, который представляет смещение времени от UTC (Coordinated Universal Time) для данного объекта. Функция не принимает параметров и возвращает смещение, которое может быть положительным или отрицательным в зависимости от часового пояса.

Импорт

kotlinimport java.time.ZonedDateTime
import java.time.ZoneOffset

Синтаксис

kotlinfun getOffset(): ZoneOffset

Пример

Получим смещение времени для объекта ZonedDateTime в часовом поясе "Europe/Moscow":

kotlinval zonedDateTime = ZonedDateTime.now()
val offset = zonedDateTime.getOffset()
println(offset)

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

kotlinString "+03:00"

Пример

Создадим объект ZonedDateTime с конкретной датой и временем и получим его смещение:

kotlinimport 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)

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

kotlinString "-04:00"

Пример

Получим отдельные компоненты смещения времени:

kotlinval 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")

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

kotlinString "Total seconds: 32400, Hours: 9, Minutes: 0"

Пример

Сравним смещения времени для разных часовых поясов:

kotlinval 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")

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

kotlinString "Tokyo offset: +09:00"
String "London offset: +01:00"

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

  • функцию getZone класса ZonedDateTime,
    которая возвращает идентификатор часового пояса
  • функцию getOffset класса OffsetDateTime,
    которая возвращает смещение времени
  • класс ZoneOffset,
    который представляет смещение времени от UTC
  • функцию withZoneSameInstant класса ZonedDateTime,
    которая преобразует время в другой часовой пояс с сохранением момента времени