Примеры 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);