菜单依次进入“系统管理”-->“数据字典”,选中一条数据字典进行“编辑”或“字典配置”操作,在后续的“保存”过程中,系统会返回错误,提示时间格式解析异常。
操作失败,JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2021-09-29 16:37:12": not a valid representation (error: Failed to parse Date value '2021-09-29 16:37:12': Cannot parse date "2021-09-29 16:37:12": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSX', parsing fails (leniency? null)); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String "2021-09-29 16:37:12": not a valid representation (error: Failed to parse Date value '2021-09-29 16:37:12': Cannot parse date "2021-09-29 16:37:12": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSX', parsing fails (leniency? null)) at [Source: (PushbackInputStream); line: 1, column: 60] (through reference chain: org.jeecg.modules.system.entity.SysDict["createTime"])问题原因
- fastjson默认使用的序列化格式:
public static String DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
- jackson默认支持的日期反序列格式:
("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"))
解决方案
- 在涉及到转换失败的实体类字段上,添加jackson注解;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
- 涉及到的实体类:
- SysDict
- SysDictItem



