在一次开发中发现插入数据库的create_time或者update_time少了8个小时。
很自然就想到了时区的问题上。
去服务器上查看服务器的时间。。。
发现服务器的时间正常。
然后到数据库去看看时间。。。。
发现数据库的时间也正常。。
然后再去查看mybatis生成的SQL语句,,,发现SQL语句上的参数就已经少了8个小时了。。
如果数据库存入时间正常,取数据的时候,采用的是Jackson进行json的解析和序列化,将java数据转换为json或者xml或者反向转换,这个时候,需要对日期进行格式化,如下:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date updateTime;
也可以进行Jackson的全局配置,在配置文件中对jackson的时区进行配置,如下:
jackson:
time-zone: GMT+8