Проблемы с получением объекта ZonedDateTime на сервере - PullRequest
1 голос
/ 20 марта 2020

Я столкнулся с проблемой получения даты из внешнего интерфейса. Я отправляю дату из внешнего интерфейса в формате "2020-01-03T00:00:00+02:00" в ZonedDateTime объект в фоновом режиме. Но вместо 2020-01-03T00:00Z[UTC] я получаю 2020-01-02T22:00Z[UTC] (фактически минус 2 часа).

Вопрос:

Есть ли способ заставить ZonedDateTime lib не преобразовывать в UT C, или не в минус часовой пояс? Может быть, какая-нибудь аннотация?

Пример простого кода контроллера и объекта

Объект, полученный из внешнего интерфейса:

@DIfferentsLombokAnnotations
public class Filters {
  private ZonedDateTime startDate;

  //Other fields
}

Контроллер:

@PostMapping("/ggg")
public List<ResponceObject> method(@RequestBody Filters filters) {
  //any code
 }

1 Ответ

0 голосов
/ 20 марта 2020

ZonedDateTime поддерживает только UT C или UTC + 2, что объясняет, почему вы получаете полученный результат. Один из вариантов - вместо отправки ZonedDateTime отправить LocalDate, LocalTime, ZoneId и ZoneOffset, а затем выполнить анализ ZonedDateTime на сервере. В конце дня ZonedDateTime уже состоит из этих компонентов.

...