Класс LocalDate в Java простыми словами. Часть 1.
Когда дело касается работы с датами в Java, класс LocalDate является незаменимым инструментом. Он предоставляет простой и удобный способ для представления даты без учета временной зоны и времени суток.
Класс LocalDate является частью пакета java.time и был введен в Java 8 для работы с датами без времени. Он представляет собой неизменяемый объект, который содержит год, месяц и день.
LocalDate не учитывает часы, минуты и секунды, что делает его идеальным для работы с календарными датами.
Создание объекта LocalDate.
Для создания объекта LocalDate используется статический метод of().
Например, чтобы представить дату 23 июля 2025 года, мы можем использовать следующий код:
LocalDate date = LocalDate.of(2025, 7, 23);
Операции с датами.
Класс LocalDate обладает множеством методов для выполнения различных операций с датами. Например, мы можем добавлять и вычитать дни, месяцы и годы, а также выполнять сравнение дат.
// Прибавляем 1 день к нашей дате
LocalDate tomorrow = date.plusDays(1);
// Прибавляем 1 месяц к нашей дате
LocalDate nextMonth = date.plusMonths(1);
// Отнимаем 1 год от нашей даты
LocalDate previousYear = date.minusYears(1);
boolean isAfter = date.isAfter(tomorrow);
boolean isBefore = date.isBefore(nextMonth);
boolean isEqual = date.isEqual(previousYear);
Если мы напишем в консоль:
System.out.println(isAfter);
System.out.println(isBefore);
System.out.println(isEqual);
То получим следующий вывод:
false
true
false
✅ JavaStart. Подписаться
Когда дело касается работы с датами в Java, класс LocalDate является незаменимым инструментом. Он предоставляет простой и удобный способ для представления даты без учета временной зоны и времени суток.
Класс LocalDate является частью пакета java.time и был введен в Java 8 для работы с датами без времени. Он представляет собой неизменяемый объект, который содержит год, месяц и день.
LocalDate не учитывает часы, минуты и секунды, что делает его идеальным для работы с календарными датами.
Создание объекта LocalDate.
Для создания объекта LocalDate используется статический метод of().
Например, чтобы представить дату 23 июля 2025 года, мы можем использовать следующий код:
LocalDate date = LocalDate.of(2025, 7, 23);
Операции с датами.
Класс LocalDate обладает множеством методов для выполнения различных операций с датами. Например, мы можем добавлять и вычитать дни, месяцы и годы, а также выполнять сравнение дат.
// Прибавляем 1 день к нашей дате
LocalDate tomorrow = date.plusDays(1);
// Прибавляем 1 месяц к нашей дате
LocalDate nextMonth = date.plusMonths(1);
// Отнимаем 1 год от нашей даты
LocalDate previousYear = date.minusYears(1);
boolean isAfter = date.isAfter(tomorrow);
boolean isBefore = date.isBefore(nextMonth);
boolean isEqual = date.isEqual(previousYear);
Если мы напишем в консоль:
System.out.println(isAfter);
System.out.println(isBefore);
System.out.println(isEqual);
То получим следующий вывод:
false
true
false
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍3👨💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5✍3👨💻1
Какая аннотация Spring помечает метод-слушатель событий?
Anonymous Quiz
28%
4%
57%
3%
Посмотреть ответ
✍2👍2🎉2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4💯4👍1
Знакомство с классом LocalDate в Java. Часть 2.
Форматирование и разбор даты.
Методы format() и parse() позволяют форматировать объект LocalDate в строку и обратно. Например:
// Создаём переменную date
LocalDate date = LocalDate.of(2025, 7, 23);
// Форматируем дату в строку по конкретному паттерну
String formattedDate = date.format(DateTimeFormatter.ofPattern("dd.MM.yyyy"));
// Получаем дату из переданной строки
LocalDate parsedDate = LocalDate.parse(
"23.07.2025",
DateTimeFormatter.ofPattern("dd.MM.yyyy")
);
System.out.println(formattedDate);
System.out.println(parsedDate);
Вывод переменных в консоль:
23.07.2025
2025-07-23
✅ JavaStart. Подписаться
Форматирование и разбор даты.
Методы format() и parse() позволяют форматировать объект LocalDate в строку и обратно. Например:
// Создаём переменную date
LocalDate date = LocalDate.of(2025, 7, 23);
// Форматируем дату в строку по конкретному паттерну
String formattedDate = date.format(DateTimeFormatter.ofPattern("dd.MM.yyyy"));
// Получаем дату из переданной строки
LocalDate parsedDate = LocalDate.parse(
"23.07.2025",
DateTimeFormatter.ofPattern("dd.MM.yyyy")
);
System.out.println(formattedDate);
System.out.println(parsedDate);
Вывод переменных в консоль:
23.07.2025
2025-07-23
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👨💻3✍2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍3👨💻1
Какой метод Stream API завершит вычисления, как только найден первый элемент, удовлетворяющий условию?
Anonymous Quiz
3%
filter()
78%
findFirst()
16%
anyMatch()
1%
collect()
1%
Посмотреть ответ
👍3✍2🎉2
Что делает аннотация @Slf4j (Lombok)?
Anonymous Quiz
31%
Генерирует статическое поле-логгер и методы logInfo, logError
38%
Генерирует поле логгера выбранного фреймворка (по умолчанию SLF4J)
2%
Добавляет поддержку Structured Logging в JVM
9%
Перехватывает исключения и логирует их автоматически
20%
Посмотреть ответ
✍3👍3🎉1
Знакомство с классом LocalDate в Java. Часть 3.
Пример использования LocalDate на коммерческом проекте.
Допустим, у нас есть задача вычислить дату через два месяца от текущей даты и проверить, выпадает ли она на выходной день:
Введем переменную currentDate, которая будет соответствовать фиксированной дате (20 июля 2025). Введем переменную twoMonthsLater, которая будет соответствовать дате, которая старше нашей на 2 месяца.
Пропишем условие, которое будет проверять, выпадает ли наша новая дата twoMonthsLater на выходной день или нет (Картинка 1).
Чтобы получить конкретный день нашей новой даты, воспользуемся методом класса LocalDate - getDayOfWeek(), а также проверки нужного дня недели воспользуемся энамом DayOfWeek из того же пакета java.time. И сделаем сравнение (Картинка 2).
Вывод в консоль на Картинке 2.
✅ JavaStart. Подписаться
Пример использования LocalDate на коммерческом проекте.
Допустим, у нас есть задача вычислить дату через два месяца от текущей даты и проверить, выпадает ли она на выходной день:
Введем переменную currentDate, которая будет соответствовать фиксированной дате (20 июля 2025). Введем переменную twoMonthsLater, которая будет соответствовать дате, которая старше нашей на 2 месяца.
Пропишем условие, которое будет проверять, выпадает ли наша новая дата twoMonthsLater на выходной день или нет (Картинка 1).
Чтобы получить конкретный день нашей новой даты, воспользуемся методом класса LocalDate - getDayOfWeek(), а также проверки нужного дня недели воспользуемся энамом DayOfWeek из того же пакета java.time. И сделаем сравнение (Картинка 2).
Вывод в консоль на Картинке 2.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3✍2🔥2👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6💯4✍2❤1
Что произойдёт, если у класса record явно переопределить метод hashCode() и не переопределить equals()?
Anonymous Quiz
57%
Допустимо, но нарушит контракт equals/hashCode, что приведёт к некорректной работе Set/Map
13%
Ошибка компиляции - оба метода должны переопределяться вместе
15%
Javac автоматически сгенерирует совместимый equals()
7%
JVM проигнорирует пользовательский hashCode() и оставит сгенерированный
7%
Посмотреть ответ
✍3👍3🎉1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5💯3👍1
Какой из Collectors лучше всего подходит для подсчёта количества элементов потока?
Anonymous Quiz
8%
Collectors.toList()
47%
Collectors.counting()
12%
Collectors.summingInt()
23%
Collectors.reducing(0, e -> 1, Integer::sum)
10%
Посмотреть ответ
✍4👍3🎉1