Функция with
Функция with класса ZonedDateTime возвращает копию исходного объекта с измененным указанным компонентом.
В первый параметр мы передаем временное поле для изменения, во второй параметр мы передаем новое значение для этого поля.
Импорт
import java.time.ZonedDateTime
import java.time.temporal.ChronoField
Синтаксис
fun with(field: TemporalField, newValue: Long): ZonedDateTime
Пример
Изменим год в объекте ZonedDateTime на 2026:
val dateTime = ZonedDateTime.parse("2025-12-31T10:15:30+01:00[Europe/Paris]")
val newDateTime = dateTime.with(ChronoField.YEAR, 2026)
println(newDateTime)
Результат выполнения кода:
String "2026-12-31T10:15:30+01:00[Europe/Paris]"
Пример
Изменим месяц на 6 (июнь) в объекте ZonedDateTime:
val dateTime = ZonedDateTime.parse("2025-12-31T10:15:30+01:00[Europe/Paris]")
val newDateTime = dateTime.with(ChronoField.MONTH_OF_YEAR, 6)
println(newDateTime)
Результат выполнения кода:
String "2025-06-31T10:15:30+01:00[Europe/Paris]"
Пример
Изменим час на 23 в объекте ZonedDateTime:
val dateTime = ZonedDateTime.parse("2025-12-31T10:15:30+01:00[Europe/Paris]")
val newDateTime = dateTime.with(ChronoField.HOUR_OF_DAY, 23)
println(newDateTime)
Результат выполнения кода:
String "2025-12-31T23:15:30+01:00[Europe/Paris]"
Пример
Изменим несколько компонентов последовательно:
val 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)
Результат выполнения кода:
String "2026-03-15T10:15:30+01:00[Europe/Paris]"
Смотрите также
-
класс
ChronoField,
который содержит поля для работы с датой и временем