关于时区问题的一些总结:从java 到 mybatis 到mysql的所有时区相关问题总结

在开发过程中总是会遇到时区相关的问题,例如:本地idea+本地mysql跑起的服务是正常的时间展示,但是使用docker部署相关的服务后时间的展示或者插入就不是预期的行为了。本地idea+本地mysql跑起的服务是正常的时间展示,但是在上线使用服务器环境运行服务就不行了。
摘要由CSDN通过智能技术生成

文章框架:

原因:遇到了和时区相关的问题,但网上检索的结果并不如人意,都只是讲了其中的一部分问题,所以我来写个完整的,都是使用idea debug一步步利用控制变量法得出来的实验性结论。

内容:我会写的尽量详细,但有时候又会觉得太啰嗦了,所以在问题分析部分我给了两个版本,一份给大神看,一份给曾经的自己看。

遇到的问题(场景复现):

业务:

用户通过前端页面点击新增,创建了一条业务内容后,在业务一览展示中会有对应业务的创建时间信息,但用户发现显示的创建时间比他当时所在的时间少了十六个小时,比如他是北京时间17:00创建的,前端展示创建时间为01:00。

业务实现逻辑:

当用户点击新增业务时,前端传入用户输入的业务类数据,后端java程序使用mybatis向mysql插入业务类数据的同时,还要插入创建时间,对应语句简化为:

insert into testTable(userID,functionId,someData,createTime)
values('1231456','1255555','datafortest',now());

上图前三个字段的值是从前端传来的数据,最后一个使用了sql 函数 now()来获取当前时间。

java jdbc连接mysql的url是:

jdbc:mysql://${DATABASE_ADDRESS}/${DATABASE_NAME}?characterEncoding&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值