微服務消費者調用提供者獲取實體類數據時候,報錯:
java.lang.IllegalArgumentException: Cannot deserialize value of type `java.util.Date` from String "2020-03-17 20:33:37": not a valid representation (error: Failed to parse Date value '2020-03-17 20:33:37': Cannot parse date "2020-03-17 20:33:37": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ', parsing fails (leniency? null)) at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: ...)
大體意思就是時間格式不符合要求,查了下文檔對於時間,默認的轉換格式為
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" "EEE, dd MMM yyyy HH:mm:ss zzz" "yyyy-MM-dd"
不符合我們要求,一般情況下在需要轉換的實體類上加注解
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
或者微服務配置中心為項目統一配置
#spring.jackson.time-zone=GMT+8 #spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
即可解決!!
但是最近使用國產數據庫highgo適配時候,因為特殊要求,字段都是拼音定義的,比如CJSJ(創建時間) 這時候時間字段加注解還是報錯時間格式不對!
最后測試發現字段改為小寫可解決 cjsj(類似這樣!)