MySQL存入的时间和取出时间不一致的解决

场景:代码运行在Linux-A上,new Date() 生成的时间比当前时间早13个小时,导致存入数据库内的时间也早13个小时,但前台读取展示出来的时间又是正常的。在数据库直接select now()测试出来的时间也是比当前时间早13个小时。

 

分析:

问题一:Linux-B上的MySQL数据库内的时间设置有问题

问题二:Linux-A上代码new Date()出来的时间有问题

 

解决:

    问题一:找DBA修改了数据库内的时间设置,修改完成后数据库select now()出来的时间正常,但是存入时间和取出时间还是不一致。

    问题二:设置Linux-B上的时区,通过命令“ tzselect ”,选择5-Asia、9-china、1-Beijing,设置完成后还是不行。再到 /etc 目录下创建文件 timezone,内容为  Asia/Shanghai。设置完成后重新在Linux-A上部署项目,问题解决,读写时间一致。

 

PS:timezone文件的指令可以用   echo 'Asia/Shanghai' >/etc/timezone

 

处理完了写出来,防止自己忘记,也供大家参考

 

备注:上面的方法其实也是看了许多大牛的博客自己去试出来然后总结的。

 

======================================================

后面又遇到一个,某张表在数据库储存的时间与实际时间差了12个小时,其他都正常,就这张表时间不对。后续在实体类上加注解     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") 搞定。

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值