Spring boot返回时间与MySql数据库中不相同问题及解决方法 - Stars

Spring boot返回时间与MySql数据库中不相同问题及解决方法 - Stars

最近做项目测试的发现,访问Url返回的时间与数据库中的不相同,环境是Spring boot+MyBatis+Mysql(阿里云服务器),经过一番折腾,得到了解决

问题描述

我是直接使用IDEA的数据库控制台,往数据库中某个表插入了数据,该表存在着一个字段date,此字段是插入数据的时候由数据库自动赋值,从数据库中的查询语句,时间是正确的,但是,使用了访问Url来进行查询,返回的json数据中的时间就是比数据库中的时间要晚8小时

原因

原因其实很简单,因为spring boot默认使用的jackson来将实体类对象转为json数据,而jackson默认的时区和数据库中的时区不一样,jackson应该用的是美国时区(猜测),所以,jackson将实体类对象转为json数据的时候,把时间调为了美国时区,所以就晚了8小时

解决方法

解决方法很简单,只需要在spring boot中的配置文件配置jackson的时区即可,这里我采用的yml文件进行配置

spring:
  jackson:
    time-zone: GMT+8