今天用java new dete() 插入数据库,插入成功发现时间少13小时
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/492117fb69856a7d1f8b155627359700.png)
万能的度娘,告诉了我事情的真相:
1原来是数据库设置的时区不是我当前所在时区。
2mysql高版本会出现这个问题,比如8.0 我用5.X没事
有很多解决方案
1—
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cdebc6e01535aae001fd0b53ee3d01c8.png)
在后面添加 serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia/Shanghai
2—
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cbe630b2402395fa92486a4438eb1441.png)
show variables like '%time_zone%'
设置mysql时区:set GLOBAL time_zone = '+8:00';
但是这个只是临时有效
如果想将时区设置为永久生效,需要修改配置文件my.cnf(在/etc/my.cnf或者/etc/mysql/my.cnf):
在配置文件中添加
default-time-zone = '+8:00'
然后restart mysql。