【随手记录】时间格式转换报错:while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSZ'

微服务消费者调用提供者获取实体类数据时候,报错:

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(类似这样!)

猜你喜欢

转载自www.cnblogs.com/whaleX/p/12695536.html