插入数据库的时间,跟数据库有关
select now(); 查看mysql系统时间。和当前时间做对比
set global time_zone = '+8:00';设置时区更改为东八区
数据库正常,取出后存在时差
比如数据库是2019-05-05 17:28:45
取出来却是 Mon May 06 06:28:45 CST 2019
,如果是数据库本身的CST时区问题,那么数据库显示应该是错误的,但是现在数据库正确,取出来的却错了,说明是程序本身的问题。
数据库连接依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
5.x版本不需要设置时区,6.x之后就需要设置时区了,而目前项目中使用的是8.x,因此需要在数据库连接处指定时区,否则会存在时差。
解决方案:
在数据库连接时指定时区 &serverTimezone=Asia/Shanghai
url: jdbc:mysql://localhost:3306/test?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
搞定!
参考 https://blog.csdn.net/syr1136877833/article/details/85207715
取出数据库的展示时间
取出后的格式
2018-05-01T03:12:26.000+0000
springboot全局配置 , 指定时区为东八区+格式化时间
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss