最近开了一个新项目,做着做着发现数据库的时间跟我读取出来的时间相差了14个小时,好神奇啊,就去网上查了一下,说是数据库时区问题。
show variables like '%time_zone%'在数据库里面敲上这个发现时区是CST确实跟文章说的一样是,但是我去我的旧项目的数据库查了一下一样的啊。
我又上网找了别的帖子,说是需要连接数据库的时候需要设置时区,所以我就在数据库连接上加了&serverTimezone=Asia/Shanghai,结果好了。
但是为什么旧项目不需要呢???
后来发现是版本问题,旧项目的版本是5.1.0新项目都更新到8.0.13
6.0.0之后版本就需要设置时区了,所以我的会有时间差。
网友说如果不设置会有异常
java.sql.SQLException: The server time zone value ‘�й���ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
但是我没有设置也没有出问题,具体原因我也不是很清楚。
不过开始新项目之后出现问题有一部分的原因就有可能是新版本,加油吧!