springboot的yml时间转化异常

yml配置了时间,绑定到实体类上输出的时间格式不一样

我定义了一个实体类,如下图

img

yml文件如下图

img

运行结果如下

img

描述

可以看到时间从 2022/12/12 => Sat Dec 12 00:00:00 CST 2020 这种cst格式,不知道是什么原因,当我做了如下修改时

img

可以看到我改成 2022-12-12,报错了,原因是无法绑定 person.time to java.util.Date 我不知道这是什么原因。

做过的尝试

我尝试过在实体类的time属性上加** @JsonFormat(pattern = "yyyy-HH-dd hh:mm:ss")**,结果还是报错,希望得到大家的帮助

你好题主,这是因为你时间用的是时间格式,一般我是用字符串来做时间,当然保留原有属性时间格式,而是用另外一个属性来转换,比如:

private Date time;
private String timeStringAgo;

你说的注解格式,建议都是用在 String 上的,而不是特定的 Date,输出这样的格式,是因为默认 Date 有一个 toString() 方法,就是按这种格式输出的。

一般题主可以说说要解决这个问题是有怎么样的需求,这样我们就能更好去帮你解决。

因为保留 Date,你就可以通过它的一些时间方法,获取当前年月周、时间,所以最后的方法还是保留两种方式的时间。

而且我一般会使用 timeStringAgo 转换成 小时前、几天前、几月前和几年前这种格式,看看题主的需求做更好的处理。

如还存在问题可继续与我联系反馈。

你的时间格式 是 yyyy-MM-dd 的,你加注解也应该是 @JsonFormat(pattern = "yyyy-HH-dd") 这样,另外这个注解适用于Jackson这个json库,如果你的项目没有额外修改Json转换是可以使用这个注解的