Метод with класса LocalDate
Метод with класса LocalDate возвращает
новый объект LocalDate, полученный из текущего
путем замены одного из полей даты. Исходный объект
при этом не изменяется, так как класс LocalDate
является неизменяемым. В первый параметр мы передаем
специальный объект ChronoField, указывающий,
какое именно поле нужно заменить (год, месяц или день),
а во второй - новое числовое значение для этого поля.
Синтаксис
date.with(field, newValue)
Пример
Давайте создадим дату и заменим в ней год на 2030:
import java.time.LocalDate;
import java.time.temporal.ChronoField;
public class Main
{
public static void main(String[] args)
{
LocalDate date = LocalDate.of(2025, 6, 15);
LocalDate res = date.with(ChronoField.YEAR, 2030);
System.out.println(res);
}
}
Результат выполнения кода:
"2030-06-15"
Пример
Давайте заменим месяц на 12:
import java.time.LocalDate;
import java.time.temporal.ChronoField;
public class Main
{
public static void main(String[] args)
{
LocalDate date = LocalDate.of(2025, 6, 15);
LocalDate res = date.with(ChronoField.MONTH_OF_YEAR, 12);
System.out.println(res);
}
}
Результат выполнения кода:
"2025-12-15"
Пример
Давайте заменим день месяца на 1:
import java.time.LocalDate;
import java.time.temporal.ChronoField;
public class Main
{
public static void main(String[] args)
{
LocalDate date = LocalDate.of(2025, 6, 15);
LocalDate res = date.with(ChronoField.DAY_OF_MONTH, 1);
System.out.println(res);
}
}
Результат выполнения кода:
"2025-06-01"