Метод withOffsetSameLocal

Метод withOffsetSameLocal класса OffsetTime возвращает копию объекта времени с указанным смещением, сохраняя при этом локальное время неизменным. В параметр мы передаем новое смещение ZoneOffset, к которому нужно адаптировать время.

Импорт

kotlinimport java.time.OffsetTime
import java.time.ZoneOffset

Синтаксис

kotlinfun withOffsetSameLocal(offset: ZoneOffset): OffsetTime

Пример

Создадим объект OffsetTime и изменим его смещение, сохранив локальное время:

kotlinval originalTime = OffsetTime.of(14, 30, 0, 0, ZoneOffset.ofHours(3))
val newTime = originalTime.withOffsetSameLocal(ZoneOffset.ofHours(5))

println("Original: $originalTime")
println("New: $newTime")

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

kotlinString "Original: 14:30+03:00"
String "New: 14:30+05:00"

Пример

Сравним работу withOffsetSameLocal и withOffsetSameInstant:

kotlinval time = OffsetTime.of(10, 0, 0, 0, ZoneOffset.ofHours(2))
val sameLocal = time.withOffsetSameLocal(ZoneOffset.ofHours(5))
val sameInstant = time.withOffsetSameInstant(ZoneOffset.ofHours(5))

println("Original: $time")
println("Same Local: $sameLocal")
println("Same Instant: $sameInstant")

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

kotlinString "Original: 10:00+02:00"
String "Same Local: 10:00+05:00"
String "Same Instant: 13:00+05:00"

Пример

Используем withOffsetSameLocal для преобразования времени в UTC:

kotlinval moscowTime = OffsetTime.of(18, 45, 0, 0, ZoneOffset.ofHours(3))
val utcTime = moscowTime.withOffsetSameLocal(ZoneOffset.UTC)

println("Moscow: $moscowTime")
println("UTC: $utcTime")

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

kotlinString "Moscow: 18:45+03:00"
String "UTC: 18:45Z"

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

  • метод withOffsetSameInstant класса OffsetTime,
    который изменяет смещение с сохранением момента времени
  • метод getOffset класса OffsetTime,
    который возвращает текущее смещение времени
  • метод toLocalTime класса OffsetTime,
    который возвращает локальное время без смещения
  • класс ZoneOffset,
    который представляет смещение временной зоны