mysql数据库插入时间与系统时间相差12小时

本例基于Linux系统下的解决方法。

mysql数据库插入时间与系统时间相差12小时

            • 本例基于Linux系统下的解决方法。
  • 问题出现缘由
  • 解决方法
    • 1. 修改JVM时间
      • 结果
    • 2.修改catalina.sh文件
      • 结果

问题出现缘由

今天发现Java后端用new Date()获取到的时间插入到mysql时候却相差了12个小时。前提是系统时间正常,数据库时间正常(此处的正常是指时区为北京时区,数据库时间也设置GMT+8),排除了以上两个可能出现问题的可能性之后。后来发现tomcat启动打印时间就已经与系统相差12个小时了。那此时就考虑是否是tomcat的时间配置问题。

解决方法

1. 修改JVM时间

打开java目录下/jre/lib/zi/文件目录,该目录下有各时区文件,首先备份下原有的GMT文件,然后把相差N小时对应的文件重命名为GMT,比如我比系统相差12小时,那就把GMT+12更改为GMT。

结果

此方法无效,我以为是+12不对,就rename了GMT-12,发现重启tomcat也无效。

2.修改catalina.sh文件

打开 tomcat目录下/bin/catalina.sh文件,在文件的开头写入:
export JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/shanghai"
然后重启了tomcat。

结果

此方法奏效,tomcat日志打印日期与系统一致。

你可能感兴趣的:(Java)