jackson自动将东八区时间转成标准时间

springboot返回时间有错解决方案

问题

有些人做springboot项目会遇到一个问题:前端写一个时间,然后传到后台莫名其妙的就少了一天,也就是实际存进数据库的时间比你前端写的时间少


原因和解决方案

原因一:可能你spring时区忘记配置了(否者会使用spring默认时区),所以要在配置文件里面配置,如下:
spring.jackson.time-zone=GMT+8
这条语句能解决你时间少8个小时问题,当然一般会在跟上一条时间戳配置,如下:
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
这条语句可以是Date时间格式化,一般这两条语句一起用。

原因二:这个原因隐藏很深,当你发现你加上上面两条语句后时间还是少的话,若你有用的数据库是mysql,且mysql.jar是6.x版本的话(与5.x不同),可能你配置的时区错了,在url加上serverTimezone=Asia/Shanghai,一般都会配置成UTC(世界标准时间,中国标准时间是东八区的,比它晚整整8个小时),所以在中国一定要配置成上海的,方便我们做项目处理时间问题。当然,说的多还不如贴出来: 

原文地址:https://www.cnblogs.com/xiaohan666/p/9322068.html