JsonFormat格式化时间问题

JsonFormat 用来格式化时间,一般用在实体类字段上格式化数据库查出的时间,例如

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;

默认是标准时区的时间,会出现少8小时情况。需要添加 timezone = "GMT+8"

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;

在开发过程中发现,在设置生日日期的情况下,前端设置的时间和返回的时间差一天,例如

前端传值 : body:{"birthday":"1989-05-01","id":11,"integral":0}

接口查询返回值 birthday:1989-04-30

这个问题是夏令时导致的,从1986年到1991年的六个年度,除1986年因是实行夏时制的第一年,从5月4日开始到9月14日结束外,其它年份均按规定的时段施行,时间调快1小时。

解决办法:若时间不关注时分秒 可以前端传入日期的时分秒设置一个固定值 ,如1989-05-01 02:00:00;  或者后端对查出的数据进行处理如 simpleDateFormat格式化

上一篇:MSSQL·根据多字段为最大值且根据某字段分组取一条记录


下一篇:MeterSphere使用Beanshell后置脚本获取Json响应数据作为下一个接口参数