DateTimeFormatter.ISO_OFFSET_DATE
Использовать встроенный DateTimeFormatter.ISO_OFFSET_DATE
.
ZonedDateTime dateTime = ZonedDateTime.now(ZoneId.of("America/Fortaleza"));
String dateForXml = dateTime.format(DateTimeFormatter.ISO_OFFSET_DATE);
System.out.println(dateForXml);
Когда я только что запустил этот фрагмент, вывод был:
2020-02-14-03: 00
Если вы хотите строку в UT C с завершающим Z
, используйте ZoneOffset.UTC
:
ZonedDateTime dateTime = ZonedDateTime.now(ZoneOffset.UTC);
2020-02-14Z
Если у вас есть ZonedDateTime
, которого нет в UT C, конвертируйте:
ZonedDateTime dateTime = ZonedDateTime.now(ZoneId.of("America/Fortaleza"));
OffsetDateTime odt = dateTime.toOffsetDateTime()
.withOffsetSameInstant(ZoneOffset.UTC);
String dateForXml = odt.format(DateTimeFormatter.ISO_OFFSET_DATE);
2020- 02-14Z