服务端时区问题

插入数据库的时间,跟数据库有关

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crocutax

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值