У меня есть следующее DateTimeFormatter
.
DateTimeFormatter DATE_TIME_FORMATTER =
DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm:ss a zzzz");
Я использую его для форматирования ZonedDateTime
следующим образом:
ZonedDateTime disableTime = Instant.now()
.plus(Duration.ofDays(21))
.atZone(ZoneId.ofOffset("UTC", ZoneOffset.ofHours(-5)));
System.out.println(DATE_TIME_FORMATTER.format(disableTime));
Я хотел бы, чтобы это вывело отформатированную строку даты, как показано ниже:
09 / 16/2015 в 13:15:45 ПО ВОСТОЧНОМУ ВРЕМЕНИ
Но что получается, так это:
16.09.2015 в 13:15:45 UTC-05: 00
Независимо от того, использую ли я z
, zz
, zzz
или zzzz
в шаблоне, он всегда будет выводиться в указанном выше формате.
Есть ли другой способ создания ZonedDateTime
, который даст мне желаемый результат, или я делаю что-то не так в шаблоне?
Согласно DateTimeFormatter
документации ], O
следует использовать для отображения локализованного смещения зоны, например UTC-05:00
, а z
следует использовать для отображения названия часового пояса, например Eastern Daylight Time
или EDT
.
. ]