Метод withOffsetSameInstant
Метод withOffsetSameInstant класса OffsetTime возвращает копию объекта времени со смещением с указанным новым смещением, при этом сохраняя тот же самый момент во времени.
В параметр мы передаем новое смещение ZoneOffset, к которому нужно адаптировать время.
Импорт
import java.time.OffsetTime
import java.time.ZoneOffset
Синтаксис
fun withOffsetSameInstant(offset: ZoneOffset): OffsetTime
Пример
Создадим объект OffsetTime со смещением +03:00 и изменим смещение на +05:00 с сохранением момента:
val originalTime = OffsetTime.of(15, 30, 0, 0, ZoneOffset.ofHours(3))
val newTime = originalTime.withOffsetSameInstant(ZoneOffset.ofHours(5))
println("Original: $originalTime")
println("New: $newTime")
Результат выполнения кода:
String "Original: 15:30+03:00"
String "New: 17:30+05:00"
Пример
Изменим смещение с положительного на отрицательное:
val time = OffsetTime.of(10, 0, 0, 0, ZoneOffset.ofHours(2))
val adjustedTime = time.withOffsetSameInstant(ZoneOffset.ofHours(-5))
println("Original: $time")
println("Adjusted: $adjustedTime")
Результат выполнения кода:
String "Original: 10:00+02:00"
String "Adjusted: 03:00-05:00"
Пример
Сравним работу withOffsetSameInstant и withOffsetSameLocal:
val 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")
Результат выполнения кода:
String "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