java和mysql实际相差13小时的bug(转)
问题
Java后台程序读取数据库时间,在前端页面进行展示的时候,出现了错误,展示的时间和数据库中的时间不一致。
java读到的时间和MySQL比快了13个小时
再在网上搜索一下,最后在这篇文章中找到了答案。原因就是Java和Mysql协商时区时把 Mysql 的 CST 时间以美国中部时间:UTC-5 当做标准,而我们用的是东八区的北京时间 UTC+5,所以我从数据库中读取的 UTC-5 时间到了Java 程序里就自动转化为 UTC+8 时间,也就比数据库里的时间多了 13 个小时。
解决方法
在数据库配置文件里面,在连接字符串中设置时区:
1 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/yourDB?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8。
这样程序在从数据库读取时间的时候,时间默认就是使用的东八区的时间,而不是使用数据库的西五区时间了。
————————————————
版权声明:本文为CSDN博主「数据-黄大大」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_28746327/article/details/113293424
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
2021-07-13 springboot使用事务
2021-07-13 springboot数据格式验证(二)——自定义日期格式验证
2021-07-13 springboot数据格式验证(一)
2020-07-13 在Scala中使用fastJson