Что такое LocalDateTime?
LocalDateTime — класс из пакета java.time, объединяющий дату (LocalDate) и время (LocalTime) в календарной системе ISO-8601 без привязки к часовому поясу. Время хранится с точностью до наносекунд. Этот класс является неизменяемым (immutable) и потокобезопасным.
LocalDateTime подходит для ситуаций, когда часовой пояс не важен: логирование локальных событий, дни рождения, расписание. Для работы с часовыми поясами используется ZonedDateTime, а для хранения момента времени (timestamp) — Instant.
Пример
LocalDateTime now = LocalDateTime.now();
LocalDateTime specific = LocalDateTime.of(2024, Month.MARCH, 15, 10, 30);
LocalDateTime parsed = LocalDateTime.parse("2024-03-15T10:30:00");
now.plusHours(2);
now.minusDays(1);
now.isAfter(specific);
now.toLocalDate();
now.toLocalTime();
На собеседовании: подчеркните отсутствие часового пояса — это ключевое отличие от
ZonedDateTimeи старогоDate. Если интервьюер спросит, когда использоватьLocalDateTime, а когдаInstant, ответ:Instant— для timestamp (момент на временной оси),LocalDateTime— для человеческой даты/времени без привязки к зоне.