今天用java new dete() 插入数据库,插入成功发现时间少13小时

万能的度娘,告诉了我事情的真相:
1原来是数据库设置的时区不是我当前所在时区。
2mysql高版本会出现这个问题,比如8.0 我用5.X没事
有很多解决方案
1—

在后面添加 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—

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。
还没有评论,来说两句吧...