LocalDateTime — это неизменяемый (immutable) класс в пакете java.time, представляющий дату и время без учета часового пояса. Он хранит дату в формате год-месяц-день и время в формате часы-минуты-секунды-наносекунды.
Основные методы и характеристики:
Создание:
now(): Получение текущей даты и времени на основе системных часов.of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond): Создание экземпляра с заданными компонентами.parse(CharSequence text): Разбор строки в формате ISO 8601 (yyyy-MM-dd'T'HH:mm:ss).java
Получение компонентов:
getYear(), getMonth(), getDayOfMonth(), getHour(), getMinute(), getSecond(), getNano(): Извлечение отдельных частей даты и времени.Манипуляции:
plusYears(), plusMonths(), plusDays(), plusHours(), plusMinutes(), plusSeconds(), plusNanos(): Добавление интервалов.minusYears(), minusMonths(), minusDays(), minusHours(), minusMinutes(), minusSeconds(), minusNanos(): Вычитание интервалов.withYear(), withMonth(), withDayOfMonth(), withHour(), withMinute(), withSecond(), withNano(): Создание нового экземпляра с измененным компонентом.java
Сравнение:
isAfter(), isBefore(), isEqual(): Сравнение с другим LocalDateTime.Преобразование:
toLocalDate(): Получение только даты.toLocalTime(): Получение только времени.atZone(ZoneId zone): Преобразование в ZonedDateTime (с учетом часового пояса).java
LocalDateTime не содержит информации о часовом поясе и смещении от UTC, что делает его подходящим для хранения дат и времени, где эти аспекты не важны или определяются контекстом приложения. Для работы с конкретными моментами времени в разных часовых поясах следует использовать ZonedDateTime или OffsetDateTime.