美文网首页
Java向MySQL新增记录时间误差14小时解决办法

Java向MySQL新增记录时间误差14小时解决办法

作者: 宁静的猫 | 来源:发表于2019-02-19 04:12 被阅读3次

    2019-02-24更新:

    下面解决方法中,执行SQL命令的方法,在MySQL重启以后,还是有14小时的误差,需要重新执行一遍SQL命令才能恢复。

    问题描述:

    在项目中,一个model的LocalDateTime类型的属性设置为LocalDateTime.now(),然后保存到数据库,如下:

    task.setBeginTime(LocalDateTime.now());
    taskRepository.save(task);
    

    此次时间为2019-02-19 03:35:52,在数据库中却显示时间为2019-02-18 13:35:52,比当前时间迟了整整14个小时


    解决方法:

    查阅资料后发现,这是由于MySQL设置的时区不对,在MySQL中执行入下SQL:
    show variables like '%time_zone%'
    返回结果:


    MySQL中system_time_zone的值为CST,因此,修改MySQL的时区设置即可,执行以下命令:
    set global time_zone = '+8:00';
    set time_zone = '+8:00';
    flush privileges;
    删除之前保存进去的记录,重新保存,结果恢复正常

    另外还有一种处理办法:在 jdbc.url后面加serverTimezone=Asia/Shanghai,如
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/hera&serverTimezone=Asia/Shanghai
    

    也可以消除14小时的误差

    相关文章

      网友评论

          本文标题:Java向MySQL新增记录时间误差14小时解决办法

          本文链接:https://www.haomeiwen.com/subject/pzbtyqtx.html