Формат ZonedDateTime в строку в Java

Узнайте, как преобразовать экземпляр ZonedDateTime в строку с помощью метода ZonedDateTime.format(DateTimeFormatter) в Java.

1. Встроенные форматировщики

Класс DateTimeFormatter имеет множество встроенных форматировщиков, которые мы можем использовать в большинстве случаев, например:

  • ISO_ZONED_DATE_TIME – форматирует или анализирует дату и время со смещением и зоной, например «2011-12-03T10:15:30+01:00[Европа/Париж]».
  • ISO_DATE_TIME – форматирует или анализирует дату и время со смещением и зоной, если они доступны, например, «2011-12-03T10:15:30», «2011-12-03T10:15:30+01:00» или «2011-12-03T10:15:30+01:00[Европа/Париж]».
  • ISO_INSTANT – форматирует или анализирует момент в формате UTC, например «2011-12-03T10:15:30Z».

Полный список форматировщиков приведен здесь.

ZonedDateTime zdt = ZonedDateTime.now();String formattedZdt = zdt.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);System.out.println(formattedZdt);formattedZdt = zdt.format(DateTimeFormatter.ISO_DATE_TIME);System.out.println(formattedZdt);formattedZdt = zdt.format(DateTimeFormatter.ISO_INSTANT);System.out.println(formattedZdt);

Вывод программы.

2022-02-17T22:22:54.4786538+05:30[Asia/Calcutta]2022-02-17T22:22:54.4786538+05:30[Asia/Calcutta]2022-02-17T16:52:54.478653800Z

2. Пользовательские форматы

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

Пример Java для использования пользовательского форматировщика для форматирования зонированного экземпляра datetime в строку.

DateTimeFormatter formatter =DateTimeFormatter.ofPattern("MM/dd/yyyy - HH:mm:ss z");ZonedDateTime zdt = ZonedDateTime.now();String formattedZdt = zdt.format(formatter);System.out.println(formattedZdt);

Вывод программы.

02/17/2022 - 22:25:03 IST

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

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