Java, DateTimeFormatter не учитывает часовой пояс ZoneDateTime

У меня есть эта строка кода:

// I pass milliseconds timestamp on time var
ZonedDateTime zonedDatetIme = ZonedDateTime.ofInstant(java.time.Instant.ofEpochMilli(time), java.time.ZoneId.of("Asia/Almaty"))

Когда я пытаюсь вывести это время, он возвращает это:

System.our.println(zonedDatetIme)
// returns
2020-01-24T17:00+06:00[Asia/Almaty]

Затем я пытаюсь отформатировать эту дату и время:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern('dd.MM.yyyy hh:mm');
System.our.println(formatter.format(zonedDateTime));

Что возвращает мне это:

24.01.2020 05:00

Это не правильно. Это похоже на вычитание 6 часов из моего часового пояса вместо его добавления. Почему это происходит?

Всего 1 ответ


Вы, вероятно, путаете h и H - h - это часы в смысле AM / PM (в вашем примере: 05:00 PM = 17:00), а H - это час дня.


Есть идеи?

10000