环境
- mysql 8+版本的
- jdbc驱动
com.mysql.cj.jdbc.Driver
- jdbc url=
jdbc:mysql://localhost:3306/db?characterEncoding=utf8&useSSL=true&serverTimezone=UTC&nullNamePatternMatchesAll=true
解决过程
- 查看数据库时区设置,显示为系统时区,系统时间正常
- 进一步查看数据库时间,与系统时间一致
- 排除数据库时区设置原因
- 猜想可能因为程序中使用url中时区设置原因
UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。
UTC + (+0800) = 本地(北京)时间
最终解决
url的时区使用中国标准时间,与系统时间一致。也是就serverTimezone=Asia/Shanghai