环境
开发IDE:IDEA 2018.3.3
后端框架:SpringBoot
数据库层框架:SpringBoot Data JPA
数据库:MySQL
问题描述
数据库中有一条记录存着的时间是"2020-03-29 07:40:00",该记录在后端通过DAO接口得到的时间是“2020-03-29 15:40:00”,相差了半小时。
解决方法
很显然这是一个时区问题。要把MySQL中的时区和SpringBoot里面的时区都设置成为东八时区即可。
- MySQL配置方法
首先查看mysql当前时间
select now();
如果和当前时间不一样则需要修改为东八时区
set global time_zone = '+8:00';
- SpringBoot配置方法
在SpringBoot 配置文件application.properties文件中的数据库连接url中加入serverTimezone=GMT%2B8
,比如下面。
spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/its?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.jackson.time-zone=GMT+8
这样子就设置好了。查询再也不会出问题了。