Junior
119
questionbank
Что такое LocalDateTime в Java?
Ответ от нейросети
sobes.tech AI
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).
// Creating LocalDateTime examples LocalDateTime now = LocalDateTime.now(); LocalDateTime specific = LocalDateTime.of(2023, 10, 26, 10, 30, 0, 0); LocalDateTime parsed = LocalDateTime.parse("2023-10-26T10:30:00"); -
Получение компонентов:
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(): Создание нового экземпляра с измененным компонентом.
// Manipulating LocalDateTime LocalDateTime future = now.plusHours(3).minusMinutes(15); LocalDateTime modified = now.withYear(2024); -
Сравнение:
isAfter(),isBefore(),isEqual(): Сравнение с другимLocalDateTime.
-
Преобразование:
toLocalDate(): Получение только даты.toLocalTime(): Получение только времени.atZone(ZoneId zone): Преобразование вZonedDateTime(с учетом часового пояса).
// Conversions LocalDate datePart = now.toLocalDate(); LocalTime timePart = now.toLocalTime(); ZonedDateTime zonedDateTime = now.atZone(ZoneId.systemDefault());
LocalDateTime не содержит информации о часовом поясе и смещении от UTC, что делает его подходящим для хранения дат и времени, где эти аспекты не важны или определяются контекстом приложения. Для работы с конкретными моментами времени в разных часовых поясах следует использовать ZonedDateTime или OffsetDateTime.