问题
今天紧急处理故障时遇到一个问题,处理数据文件时间时,java中打印时间时正确的,比如“2020-06-20 00:08:01”,写入到数据库就变为了“2020-06-19 11:08:01”,时间差了13个小时,猜测可能是时区问题,java中默认美国中部时间了。
网上参考:https://blog.csdn.net/wo18237095579/article/details/90288735
解决办法
1、使用了函数:CONVERT_TZ(t.create_time,"+00:00","+13:00")转换为北京时间,直接在数据库中修改。
2、在 Java 中 JDBC 连接配置出加入 serverTimezone=GMT%2B8
或者 serverTimezone=Hongkong
url=jdbc:mysql://127.0.0.1:3306/root?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8