Как отформатировать LocalDateTime в Java

Примеры Java для форматирования экземпляра LocalDateTime в строку с использованием класса DateTimeFormatter.

1. Формат по умолчанию с LocalDateTime.toString()

По умолчанию формат LocalDateTime представлен в следующих форматах ISO-8601 на основе доступных частей даты и времени:

uuuu-MM-dd'T'HH:mmuuuu-MM-dd'T'HH:mm:ssuuuu-MM-dd'T'HH:mm:ss.SSSuuuu-MM-dd'T'HH:mm:ss.SSSSSSuuuu-MM-dd'T'HH:mm:ss.SSSSSSSSS

Давайте рассмотрим пример.

System.out.println( LocalDateTime.now() ); //2022-12-09T18:19:26.492745400

2. Метод LocalDateTime.format()

Метод format() форматирует заданный экземпляр LocalDateTime, используя указанный формат экземпляром DateTimeFormatter. Он выдает DateTimeException – если во время форматирования возникает ошибка.

public String format(DateTimeFormatter formatter)

Обратите внимание, что DateTimeFormatter является неизменяемым и потокобезопасным, поэтому рекомендуемый подход — хранить его в статической константе, где это возможно. Нам не нужно создавать новые экземпляры каждый раз, когда мы его используем.

3. Примеры формата LocalDateTime

3.1 Встроенные шаблоны

В данном примере мы создали новый экземпляр с использованием LocalDateTime.now(), представляющий текущую дату и время. Мы используем встроенный экземпляр DateTimeFormatter, использующий константу ISO_DATE_TIME. Для других часто используемых форматов даты и времени доступно несколько встроенных шаблонов.

Наконец, используйте метод format() для получения отформатированной строки.

окончательный статический DateTimeFormatter ISO_FORMATTER = DateTimeFormatter.ISO_DATE_TIME;LocalDateTime ldt = LocalDateTime.now();Строка formattedDateTime = ldt.format(ISO_FORMATTER); //2022-12-09T18:25:58.6037597

3.2. Пользовательский шаблон

Используйте метод ofPattern(), если вы хотите использовать пользовательский шаблон для форматирования.

 окончательный статический DateTimeFormatter CUSTOM_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");LocalDateTime ldt = LocalDateTime.now();Строка formattedString = ldt.format(CUSTOM_FORMATTER); //2022-12-09 18:25:58

4. Анализ строки в LocalDateTime

Следующий пример анализирует заданную строку даты-времени в экземпляр LocalDateTime. Он использует parse(dateTimeString, formatter) для анализа заданной dateTimeString с использованием предоставленного форматера.

 //дата в строкеСтрока dateString = "2018-07-14T17:45:55.9483536";Форматировщик DateTimeFormatter = DateTimeFormatter.ISO_DATE_TIME;//Разбор строки в LocalDateTimeLocalDateTime dateTime = LocalDateTime.parse(dateString, formatter); 

Исходный код Скачать

Прокрутить вверх