Функция withOffsetSameLocal
Функция withOffsetSameLocal класса OffsetDateTime возвращает копию исходного объекта с новым смещением часового пояса, при этом локальные дата и время остаются неизменными. В параметр мы передаем объект ZoneOffset, представляющий новое смещение.
Импорт
import java.time.OffsetDateTime
import java.time.ZoneOffset
Синтаксис
fun withOffsetSameLocal(offset: ZoneOffset): OffsetDateTime
Пример
Создадим объект OffsetDateTime и изменим его смещение с сохранением локального времени:
val original = OffsetDateTime.parse("2025-03-15T10:30:45+03:00")
val newOffset = ZoneOffset.ofHours(5)
val result = original.withOffsetSameLocal(newOffset)
println("Original: $original")
println("Result: $result")
Результат выполнения кода:
String "Original: 2025-03-15T10:30:45+03:00"
String "Result: 2025-03-15T10:30:45+05:00"
Пример
Сравним работу withOffsetSameLocal и withOffsetSameInstant:
val datetime = OffsetDateTime.parse("2025-07-20T15:45:00+02:00")
val newOffset = ZoneOffset.ofHours(-3)
val sameLocal = datetime.withOffsetSameLocal(newOffset)
val sameInstant = datetime.withOffsetSameInstant(newOffset)
println("Original: $datetime")
println("Same Local: $sameLocal")
println("Same Instant: $sameInstant")
Результат выполнения кода:
String "Original: 2025-07-20T15:45:00+02:00"
String "Same Local: 2025-07-20T15:45:00-03:00"
String "Same Instant: 2025-07-20T10:45:00-03:00"
Пример
Использование с UTC смещением:
val datetime = OffsetDateTime.parse("2025-12-31T23:59:59+05:00")
val utcResult = datetime.withOffsetSameLocal(ZoneOffset.UTC)
println("Original: $datetime")
println("UTC Result: $utcResult")
Результат выполнения кода:
String "Original: 2025-12-31T23:59:59+05:00"
String "UTC Result: 2025-12-31T23:59:59Z"
Смотрите также
-
функцию
withOffsetSameInstantклассаOffsetDateTime,
которая изменяет смещение с сохранением момента времени -
функцию
getOffsetклассаOffsetDateTime,
которая возвращает текущее смещение -
функцию
toLocalDateTimeклассаOffsetDateTime,
которая возвращает локальную дату и время -
класс
ZoneOffset,
который представляет смещение часового пояса