Стажировка
Открыта запись на бесплатный пробный месяц! Жми для подробностей! →
862 of 1310 menu
Бесплатный курс по Верстке. От новичка до продвинутого верстальщика! Мы уже начали, но можно присоединится! Жми для записи!

Функция withOffsetSameInstant

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

Импорт

import java.time.OffsetDateTime import java.time.ZoneOffset

Синтаксис

fun withOffsetSameInstant(offset: ZoneOffset): OffsetDateTime

Пример

Преобразуем время со смещением +03:00 к смещению +05:00 с сохранением момента времени:

val original = OffsetDateTime.parse("2025-07-15T10:30:00+03:00") val newOffset = ZoneOffset.ofHours(5) val result = original.withOffsetSameInstant(newOffset) println(result)

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

String "2025-07-15T12:30:00+05:00"

Пример

Преобразуем время из UTC в смещение -08:00:

val utcTime = OffsetDateTime.parse("2025-12-31T23:45:00Z") val pacificOffset = ZoneOffset.ofHours(-8) val result = utcTime.withOffsetSameInstant(pacificOffset) println(result)

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

String "2025-12-31T15:45:00-08:00"

Пример

Сравним преобразование с сохранением момента времени и с сохранением локального времени:

val original = OffsetDateTime.parse("2025-03-20T15:00:00+02:00") val newOffset = ZoneOffset.ofHours(-4) val sameInstant = original.withOffsetSameInstant(newOffset) val sameLocal = original.withOffsetSameLocal(newOffset) println("Same instant: $sameInstant") println("Same local: $sameLocal")

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

String "Same instant: 2025-03-20T09:00:00-04:00" String "Same local: 2025-03-20T15:00:00-04:00"

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

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