Класс LocalDate
Класс LocalDate из пакета java.time представляет
собой дату без времени и без часового пояса. Он хранит
год, месяц и день месяца. Класс является неизменяемым:
все методы, изменяющие дату, возвращают новый объект,
а исходный остается прежним. Для создания даты используют
статические методы now, of и parse.
Синтаксис
LocalDate date = LocalDate.now();
LocalDate date = LocalDate.of(year, month, dayOfMonth);
LocalDate date = LocalDate.parse("2025-01-15");
Пример
Давайте создадим текущую дату с помощью метода now
и выведем ее на экран:
import java.time.LocalDate;
public class Main
{
public static void main(String[] args)
{
LocalDate date = LocalDate.now();
System.out.println(date);
}
}
Результат выполнения кода:
"2025-01-15"
Пример
Давайте создадим конкретную дату с помощью метода of,
передав в первый параметр год, во второй - месяц,
в третий - день месяца:
import java.time.LocalDate;
public class Main
{
public static void main(String[] args)
{
LocalDate date = LocalDate.of(2025, 1, 15);
System.out.println(date);
}
}
Результат выполнения кода:
"2025-01-15"
Пример
Давайте создадим дату из строки в формате
год-месяц-день с помощью метода parse:
import java.time.LocalDate;
public class Main
{
public static void main(String[] args)
{
LocalDate date = LocalDate.parse("2025-01-15");
System.out.println(date);
}
}
Результат выполнения кода:
"2025-01-15"
Пример
Давайте получим отдельные части даты: год, месяц и день месяца:
import java.time.LocalDate;
public class Main
{
public static void main(String[] args)
{
LocalDate date = LocalDate.of(2025, 1, 15);
int year = date.getYear();
int month = date.getMonthValue();
int day = date.getDayOfMonth();
System.out.println(year);
System.out.println(month);
System.out.println(day);
}
}
Результат выполнения кода:
2025
1
15
Пример
Давайте прибавим к дате несколько дней, месяцев и лет. Исходная дата при этом не изменится:
import java.time.LocalDate;
public class Main
{
public static void main(String[] args)
{
LocalDate date = LocalDate.of(2025, 1, 15);
LocalDate res = date.plusDays(10).plusMonths(1).plusYears(1);
System.out.println(date);
System.out.println(res);
}
}
Результат выполнения кода:
"2025-01-15"
"2026-02-25"
Пример
Давайте сравним две даты с помощью методов isBefore
и isAfter:
import java.time.LocalDate;
public class Main
{
public static void main(String[] args)
{
LocalDate date1 = LocalDate.of(2025, 1, 15);
LocalDate date2 = LocalDate.of(2025, 6, 20);
System.out.println(date1.isBefore(date2));
System.out.println(date1.isAfter(date2));
}
}
Результат выполнения кода:
true
false