@JsonFormat Аннотация Джексона неверно выводит дату из-за разницы по Гринвичу

У меня есть DTO, который я вывожу на Джексона, где поле определяется как

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "MM/dd/yyyy")
Date reportingDate;

Это поле хранится в базе данных Postgres как Timestamp Without Timezone и, например,

2019-04-01 22:04:40.353

JSON для этого поля неправильно выводится в 2019-04-02 . Я убедился, что проблема возникает из-за того, что Джексон добавил +5 к моему значению для разницы часовых поясов с GMT. Это неверно, и я должен получить только точное значение даты, возвращаемое из БД. Мой Джексон настроен неправильно?

Всего 1 ответ


Я решил это, добавив атрибут timezone как timezone ниже.

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "MM/dd/yyyy", timezone = "America/New_York")
Date reportingDate;

Теперь это не добавляет +5, чтобы сделать это GMT.


Есть идеи?

10000