Узнайте, как преобразовать экземпляр 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