最近公司项目需要用微信小程序,后台使用spring框架,出现了一个问题。
数据库有三个date类型字段:createDate、updateDate、inspectTime。
从数据库查询后后台代码:
System.out.println("inspectTime"+(page.getList().get(0).getInspectTime()));
System.out.println("createTime"+(page.getList().get(0).getCreateDate()));
System.out.println("inspectTime"+simpleDateFormat.format(page.getList().get(0).getInspectTime()));
System.out.println("createTime"+simpleDateFormat.format(page.getList().get(0).getCreateDate()));
控制台输出:
小程序自带获取到inspectTime少了8个小时
刚开始没有想到是时区的问题,经大佬提醒才想到。然后百度时区相关的问题,发现都是在配置文件中统一设置,而我的问题是部分属性时区是错误的,后来和大佬探讨,发现是inspectTime属性所在实体类中get方法使用了**@JsonFormat**注解,但是没有使用timezone设置时区。加上就好。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
public Date getInspectTime() {
return inspectTime;
}