Класс LocalDate из пакета java.time предназначен для работы с датами. Функционал этого класса позволяет создавать даты и изменять их, добавляя и отнимая необходимое количество дней/месяцев/лет.
Основные методы LocalDate:
static LocalDate now(): возвращает объект, который представляет текущую дату
static LocalDate of(int year, int month, int day): возвращает объект, который представляет дату с определенными годом, месяцем и днем
int getYear(): возвращает год даты
int getMonthValue(): возвращает месяц
int getDayOfMonth(): возвращает день месяца (значение от 1 до 31)
int getDayOfYear(): возвращает номер дня года (значение от 1 до 365)
DayOfWeek getDayOfWeek(): возвращает день недели в виде значения перечисления DayOfWeek
LocalDate plusDays(int n): добавляет к дате некоторое количество дней
LocalDate plusWeeks(int n): добавляет к дате некоторое количество недель
LocalDate plusMonths(int n): добавляет к дате некоторое количество месяцев
LocalDate plusYears(int n): добавляет к дате некоторое количество лет
LocalDate minusDays(int n): отнимает от даты некоторое количество дней
LocalDate minusMonths(int n): отнимает от даты некоторое количество месяцев
LocalDate minusWeeks(int n): отнимает от даты некоторое количество недель
LocalDate minusYears(int n): отнимает от даты некоторое количество лет
Получение информации о текущей дате:
import java.time.DayOfWeek;
import java.time.LocalDate;
public class Program {
public static void main(String[] args) {
LocalDate date = LocalDate.now(); // получаем текущую дату
int year = date.getYear();
int month = date.getMonthValue();
int dayOfMonth = date.getDayOfMonth();
DayOfWeek dayOfWeek = date.getDayOfWeek();
System.out.println(date);
System.out.println(dayOfWeek);
System.out.printf("%d.%d.%d \n", dayOfMonth, month, year);
}
}
Консольный вывод:
2025-09-17 WEDNESDAY 17.9.2025
Создание и получение информации по случайной дате:
LocalDate date = LocalDate.of(1914, 12, 31); System.out.println(date);
Операции с датами - добавление и удаление:
LocalDate date = LocalDate.of(1914, 7, 28);
date = date.plusYears(4);
date = date.plusMonths(3);
date = date.plusDays(14);
System.out.println(date); // 1918-11-11
date = date.minusMonths(10);
date = date.minusDays(3);
System.out.println(date); // 1918-01-08