Метод withOffsetSameLocal
Метод withOffsetSameLocal класса OffsetTime возвращает копию объекта времени с указанным смещением, сохраняя при этом локальное время неизменным.
В параметр мы передаем новое смещение ZoneOffset, к которому нужно адаптировать время.
Импорт
import java.time.OffsetTime
import java.time.ZoneOffset
Синтаксис
fun withOffsetSameLocal(offset: ZoneOffset): OffsetTime
Пример
Создадим объект OffsetTime и изменим его смещение, сохранив локальное время:
val originalTime = OffsetTime.of(14, 30, 0, 0, ZoneOffset.ofHours(3))
val newTime = originalTime.withOffsetSameLocal(ZoneOffset.ofHours(5))
println("Original: $originalTime")
println("New: $newTime")
Результат выполнения кода:
String "Original: 14:30+03:00"
String "New: 14:30+05:00"
Пример
Сравним работу withOffsetSameLocal и withOffsetSameInstant:
val 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")
Результат выполнения кода:
String "Original: 10:00+02:00"
String "Same Local: 10:00+05:00"
String "Same Instant: 13:00+05:00"
Пример
Используем withOffsetSameLocal для преобразования времени в UTC:
val moscowTime = OffsetTime.of(18, 45, 0, 0, ZoneOffset.ofHours(3))
val utcTime = moscowTime.withOffsetSameLocal(ZoneOffset.UTC)
println("Moscow: $moscowTime")
println("UTC: $utcTime")
Результат выполнения кода:
String "Moscow: 18:45+03:00"
String "UTC: 18:45Z"
Смотрите также
-
метод
withOffsetSameInstantклассаOffsetTime,
который изменяет смещение с сохранением момента времени -
метод
getOffsetклассаOffsetTime,
который возвращает текущее смещение времени -
метод
toLocalTimeклассаOffsetTime,
который возвращает локальное время без смещения -
класс
ZoneOffset,
который представляет смещение временной зоны