您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发
【原】MySQL数据库时间和jdbc查询时间相差12小时
不忘初心 2022-06-14 围观() 评论() 点赞() 【JAVA开发】
简介:最近在公司的一个新项目中,在提测的时候出现了很多时间不对的问题,列表上显示的时间对不上本地机器的时间,表现为MySQL数据库时间和jdbc查询时间相差整12个小时,这种问题多半都是时区不对导致的时间差。因为是新项目,所以部署的Linux服务器也是一台新的,没有使用rds,而是直接在这台Linux服务器上手动安装了一个MySQL,所以同事跟我说的时候,我第一反应就是机器的时间没设置好。如上图,我使用
最近在公司的一个新项目中,在提测的时候出现了很多时间不对的问题,列表上显示的时间对不上本地机器的时间,表现为MySQL数据库时间和jdbc查询时间相差整12个小时,这种问题多半都是时区不对导致的时间差。
因为是新项目,所以部署的Linux服务器也是一台新的,没有使用rds,而是直接在这台Linux服务器上手动安装了一个MySQL,所以同事跟我说的时候,我第一反应就是机器的时间没设置好。
如上图,我使用date
查看了一下系统时间,发现这个时间其实是没问题的,进而怀疑是MySQL自身时区设置的有问题。
为了验证,使用select now()
在mysql中查询一下当前时间,发现now()
查询出来的时间也是正确的。
如上图,now()
查询的时间与我本机时间一致,但就是查询出来的数据中时间不对。
再去确认一下MySQL时区,一开始的time_zone
的值是SYSTEM
,忘记截图了,改为GMT+8
之后,使用show variables like '%time_zone%'
查看一下修改结果,证明时区也没问题了。
问题依旧没有得到解决,又注意到上面那个system_time_zone
默认是CST
,由于CST
时区比较乱,所以需要在代码中追加了时区设置。
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/reservoir?characterEncoding=utf8&useSSL=true&zeroDateTimeBehavior=convertToNull&useTimezone=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
没想到这些涉及时区的问题也改过之后,依旧还是不行。
在继续排查的过程中,发现了一个细节,测试妹子导入的数据就没有时区问题,就是在页面上添加的就会有问题,瞬间反应过来,这特么该不会是json时区问题吧,因为页面上提交的是payload数据,走的是json格式,而springboot默认使用的是jackson
,遂增加jackson
时区配置。
#json timezone
spring.jackson.time-zone=GMT+8
问题得到解决,fuck!!!
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们