Аннотация DateTimeFormat в весеннем часовом поясе

У меня возникла проблема с преобразованием строки в объект даты. При преобразовании он выбирает часовой пояс по Гринвичу и меняется на предыдущую дату. Я хочу игнорировать часовой пояс. Если строковое значение равно «12.03.2019», то оно должно иметь одну и ту же дату независимо от часового пояса.

@DateTimeFormat(pattern = "MM/dd/yyyy") Date startDate

Какие-либо предложения? Спасибо.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
757
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Используйте java.time.LocalDate вместо Date.

Используйте java.time.LocalDate LocalDate не имеет времени и, следовательно, не имеет часового пояса

@DateTimeFormat(pattern = "MM/dd/yyyy")
private LocalDate localDate;
Ответ принят как подходящий

Вы можете решить эту проблему, используя Jodatime LocalDate (который по дизайну не имеет часового пояса):

@DateTimeFormat(iso = ISO.DATE) LocalDate startDate

Его можно преобразовать в дату JDK, вызвав метод toDate().

Вы также можете использовать шаблон даты

@DateTimeFormat(iso = DateTimeFormat.ISO.DATE, pattern = "MM/dd/yyyy") 

Зависимость от maven:

<dependency>
   <groupId>joda-time</groupId>
   <artifactId>joda-time</artifactId>
   <version>2.9.3</version>
</dependency>

Другие вопросы по теме