Spring boot - сериализация и десериализация даты Джексона - PullRequest
0 голосов
/ 30 октября 2018

При весенней загрузке сериализация и десериализация выполняются Джексоном. По умолчанию Джексон сериализует даты, преобразовывая их в часовой пояс GMT и, десериализуя, ожидает, что даты будут в часовом поясе GMT, поэтому он преобразует их в местный часовой пояс. Однако в моем случае у нас есть 2 часовых пояса, EET и EEST. В настоящее время у нас нет лета, и Джексон десериализует одну дату в EET, а другую - в EEST в рамках той же операции и того же запроса. В чем причина и как это исправить?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

В итоге мы использовали единый часовой пояс GMT для всех приложений. мы заставили Spring при запуске установить GMT в качестве часового пояса приложения. Код:

  @PostConstruct
void started() {
    TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
}
0 голосов
/ 30 октября 2018

Попробуйте десериализовать, используя ниже, передав часовой пояс.

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ", timezone="America/Phoenix")
private Date date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...