Java:mysql-Date字段映射java.sql.Date日期偏差13个小时,估计是时区的问题。观察到Java程序日志的时间是正常的,因此怀疑mysql的时区问题。
1)先检查mysql时区
show variables like "%time_zone%";
返回结果
system_time_zone CST
2)什么是CST
mysql在5.7版本默认的时区为.美国中部时间 Central Standard Time (USA) UTC-06:00,跟中国的UTC+08:00正好相差14个小时。
解决方案:
1)配置mysql的时候,使用UTC+08:00时区(推荐)
default-zone-time='+8:00'
PS:注意,在使用其他时区前,必须参考导入其他时区配置(https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html)
2)配置JDBC连接参数,serverTimezone=Asia/Shanghai