Класс 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); } }
Консольный вывод:
2018-11-11 SUNDAY 11.11.2018
Создание и получение информации по случайной дате:
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