Функция with

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

Импорт

kotlinimport java.time.ZonedDateTime
import java.time.temporal.ChronoField

Синтаксис

kotlinfun with(field: TemporalField, newValue: Long): ZonedDateTime

Пример

Изменим год в объекте ZonedDateTime на 2026:

kotlinval dateTime = ZonedDateTime.parse("2025-12-31T10:15:30+01:00[Europe/Paris]")
val newDateTime = dateTime.with(ChronoField.YEAR, 2026)
println(newDateTime)

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

kotlinString "2026-12-31T10:15:30+01:00[Europe/Paris]"

Пример

Изменим месяц на 6 (июнь) в объекте ZonedDateTime:

kotlinval dateTime = ZonedDateTime.parse("2025-12-31T10:15:30+01:00[Europe/Paris]")
val newDateTime = dateTime.with(ChronoField.MONTH_OF_YEAR, 6)
println(newDateTime)

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

kotlinString "2025-06-31T10:15:30+01:00[Europe/Paris]"

Пример

Изменим час на 23 в объекте ZonedDateTime:

kotlinval dateTime = ZonedDateTime.parse("2025-12-31T10:15:30+01:00[Europe/Paris]")
val newDateTime = dateTime.with(ChronoField.HOUR_OF_DAY, 23)
println(newDateTime)

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

kotlinString "2025-12-31T23:15:30+01:00[Europe/Paris]"

Пример

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

kotlinval dateTime = ZonedDateTime.parse("2025-12-31T10:15:30+01:00[Europe/Paris]")
val newDateTime = dateTime
  .with(ChronoField.YEAR, 2026)
  .with(ChronoField.MONTH_OF_YEAR, 3)
  .with(ChronoField.DAY_OF_MONTH, 15)
println(newDateTime)

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

kotlinString "2026-03-15T10:15:30+01:00[Europe/Paris]"

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

  • класс ChronoField,
    который содержит поля для работы с датой и временем