spring项目在服务器获取时间少8小时

项目场景:

项目的每条sql操作(mysql)都要写入其更新时间,方便后期查错修改,即datalog。

问题描述:

项目本地运行没有问题,部署到测试服务器测试也没有问题,但是部署到生产服务器就出现了 获取日期比实际日期少8小时 的bug(测试生产服务器为两个不同的服务器)。

原因分析:

1. 服务器的时区错误
2. mysql的时区错误

解决方案:

  1. 服务器的时区错误
    1. #date //查看当前的linux系统时间
      在这里插入图片描述

    2. #hwclock --show (注意是双杠,不是单杠) //查看当前linux硬件时间
      在这里插入图片描述

    3. 如果发现系统时间和硬件时间不同步,而且硬件时间是正确的,可以用以下命令:
      #hwclock --hctosys //把硬件时间同步到系统时间

  2. mysql时区错误
    1. 可以参考这位大佬的修正方法传送门。但是改完后记得重启项目!
    2. 在项目的数据库连接加入 ?serverTimezone=Asia/Shanghai ,即jdbc:mysql://ip:3306/database?serverTimezone=Asia/Shanghai 。然后重新部署

扩展:

GMT时间、UTC时间、CST时间 : 传送门
mysql JDBC URL参数解析 : 传送门

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值