Функция with

Функция with класса OffsetDateTime возвращает копию исходного объекта с измененным смещением времени. В первый параметр мы передаем новое значение смещения, которое будет применено к текущей дате и времени.

Импорт

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

Синтаксис

kotlinfun with(offset: ZoneOffset): OffsetDateTime

Пример

Создадим объект OffsetDateTime и изменим его смещение на UTC+05:00:

kotlinval originalDateTime = OffsetDateTime.parse("2025-07-15T10:30:45+03:00")
val newOffset = ZoneOffset.ofHours(5)
val resultDateTime = originalDateTime.with(newOffset)

println("Original: $originalDateTime")
println("Result: $resultDateTime")

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

kotlinString "Original: 2025-07-15T10:30:45+03:00"
String "Result: 2025-07-15T10:30:45+05:00"

Пример

Изменим смещение времени на UTC-08:00:

kotlinval dateTime = OffsetDateTime.parse("2025-12-31T23:59:59+01:00")
val pacificOffset = ZoneOffset.ofHours(-8)
val result = dateTime.with(pacificOffset)

println(result)

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

kotlinString "2025-12-31T23:59:59-08:00"

Пример

Используем смещение с минутами и проверим компоненты даты:

kotlinval original = OffsetDateTime.parse("2025-03-20T15:45:30+02:30")
val newOffset = ZoneOffset.ofHoursMinutes(5, 30)
val result = original.with(newOffset)

val year = result.year
val hour = result.hour
val offset = result.offset

println("Year: $year, Hour: $hour, Offset: $offset")

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

kotlinString "Year: 2025, Hour: 15, Offset: +05:30"

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

  • функцию withOffsetSameInstant класса OffsetDateTime,
    которая изменяет смещение с корректировкой времени
  • класс ZoneOffset,
    который представляет смещение времени от UTC