我在使用@DateTimeFormat
註釋轉換實際不存在的日期時遇到問題。@DateTimeFormat在轉換時帶有夏令時錯誤
例如,當我設定日期15/10/2017,與標註在我的實體是如下:
@Column(nullable = false)
@NotNull
@DateTimeFormat(pattern = "dd/MM/yyyy")
private Date dataVisita;
我收到的錯誤:
Failed To Convert Property Value Of Type Java.Lang.String To Required Type Java.Util.Date For Property DataVisita;
Nested Exception Is Org.Springframework.Core.Convert.ConversionFailedException:
Failed To Convert From Type Java.Lang.String To Type @Javax.Persistence.Column @Javax.Validation.Constraints.NotNull @Org.Springframework.Format.Annotation.DateTimeFormat Java.Util.Date For Value 15/10/2017;
Nested Exception Is Java.Lang.IllegalArgumentException:
Cannot Parse "15/10/2017": Illegal Instant Due To Time Zone Offset Transition (America/Sao_Paulo)
據我所知,錯誤告訴我,日期15/10/2017 00:00:00
實際上不存在,但我想轉換爲15/10/2017 01:00:00
,忽略這種方式的問題並找到相應的日期。
有沒有一種方法可以覆蓋@DateTimeFormat
註釋或指向格式化程序的方式?
'意思是你說什麼,說出你的意思'你現在正在試圖把一個日期放入一個表示日期和時間的對象中。你可以使用LocalDate還是你堅持使用Date? – mpkorstanje
您可以創建自定義解串器。 AFAIR它在引擎蓋下使用了傑克遜。 'JsonDeserialize'註釋應該有所幫助。 [Jackson-Deserialization example。](http://www.baeldung.com/jackson-deserialization) –
嘗試使用'@DateTimeFormat(ISO = ISO.DATE_TIME)',它不會忽略字符串中的時間。 –