У меня возникла проблема с преобразованием строки в объект даты. При преобразовании он выбирает часовой пояс по Гринвичу и меняется на предыдущую дату. Я хочу игнорировать часовой пояс. Если строковое значение равно «12.03.2019», то оно должно иметь одну и ту же дату независимо от часового пояса.
@DateTimeFormat(pattern = "MM/dd/yyyy") Date startDate
Какие-либо предложения? Спасибо.




Используйте 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")
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.3</version>
</dependency>