一、问题场景
在实体当中有java.util.Date类型的属性时,为了约定前端传值的格式和返回值给前端的格式,我们通常会分别用到@DateTimeFormat注解和@JsonFormat注解。
但是今天使用的时候,却出现了@DateTimeFormat不生效的问题,不能将接收到的时间格式字符串转成Date对象。
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
二、问题复现与测试
post请求,form-data的传参方式,但是在时间字段上却抛出属性值转换错误的异常。
然后经过测试,将时间字段值放在请求参数中,可以请求成功:
虽然这样是可以请求成功,但是却不能放在form-data里面,那表单提交还单独提交时间不成,属实是有点阴间的。
三、问题解决
也曾想过是格式的问题,或者springboot版本的问题,尝试过传值的格式,比如这样
2022-05-13T15:17:30
或者是不是JsonFormat注解的时区影响之类。
一番尝试还是未能成功。
最终偶然看到时间格式的设置,将里面的hh换成了HH:
原来的:
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
现在的:
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
竟然成功了。
也没想到和这个格式设置有关。