最近在项目中发现一个@JsonFormat转换使用的问题,用法如下:
@ApiModelProperty("创建时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
private Date createTime;
在数据库里是2022-11-25 16:25:20,查询出来是2022-11-25 04:25:20。
而2022-11-25 02:18:09时间查询出来又是正常的?
而后我发现,究其原因是因为@JsonFormat 存在12小时和24小时制的区别。
//24小时制 HH:mm:ss
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//12小时制 hh:mm:ss
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
改写之后,问题完美解决了~
当然也要注意其他的字母大小写也不能写错!正确的格式:yyyy-MM-dd HH:mm:ss
在Java中,我们常用到的时间格式需要注意的是:
1. HH代表24小时制的,hh代表12小时制
2. MM代表月,mm代表分
3. ss代表秒,SSS代表毫秒
4. YYYY 代表 Week Year,yyyy 代表year
就到这啦~