Метод withOffsetSameInstant

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

Импорт

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

Синтаксис

kotlinfun withOffsetSameInstant(offset: ZoneOffset): OffsetTime

Пример

Создадим объект OffsetTime со смещением +03:00 и изменим смещение на +05:00 с сохранением момента:

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

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

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

kotlinString "Original: 15:30+03:00"
String "New: 17:30+05:00"

Пример

Изменим смещение с положительного на отрицательное:

kotlinval time = OffsetTime.of(10, 0, 0, 0, ZoneOffset.ofHours(2))
val adjustedTime = time.withOffsetSameInstant(ZoneOffset.ofHours(-5))

println("Original: $time")
println("Adjusted: $adjustedTime")

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

kotlinString "Original: 10:00+02:00"
String "Adjusted: 03:00-05:00"

Пример

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

kotlinval time = OffsetTime.of(20, 45, 0, 0, ZoneOffset.ofHours(1))
val sameInstant = time.withOffsetSameInstant(ZoneOffset.ofHours(4))
val sameLocal = time.withOffsetSameLocal(ZoneOffset.ofHours(4))

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

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

kotlinString "Original: 20:45+01:00"
String "Same Instant: 23:45+04:00"
String "Same Local: 20:45+04:00"

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

  • метод withOffsetSameLocal класса OffsetTime,
    который изменяет смещение без изменения локального времени
  • метод getOffset класса OffsetTime,
    который возвращает текущее смещение времени
  • метод withOffsetSameInstant класса OffsetDateTime,
    который выполняет аналогичную операцию для даты и времени со смещением
  • класс ZoneOffset,
    который представляет смещение времени от UTC