Gymterview
junior

Что такое 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 — для человеческой даты/времени без привязки к зоне.