因为Centos的停更以及Odoo版本升级后更加友好的支持了Ubuntu所以发布Odoo服务使用了Ubuntun系统环境,因为Odoo为国外人开发所以他们默认代码中处理了跨时区的问题,便于在国内可以友好显示,但是我还不能手动去调时区,要不然就的处理Odoo的源代码了,可是我还有另一个MySQL的新环境要发布上来,发布后发现MySQL的时间存储以及页面显示出现了时区的差异,以下就是基于以上两点的最简单的解决办法!
查看MySQL的默认时区
| SELECT @@global.time_zone, @@session.time_zone; |
正常会显示默认时区UTC
修改MySQL的时区(永久)
| [mysqld] |
| default-time-zone = 'Asia/Shanghai' |
- 添加以上内容后重启MySQL服务
如果启动失败不出意外应该是MYSQL没有挂载系统集成的所有时区的配置文件导致的使用如下方法
- 指定时区所在文件
| mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql |
会提示输入密码,输入MySQL的密码即可
| SELECT @@global.time_zone, @@session.time_zone; |

- 结果显示如上信息代表修改时区完成
- 修改JDBC连接
| jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai |
- 指定时区 serverTimezone=Asia/Shanghai
通过以上方式正常情况下MySQL数据库的存储以及前端页面的显示应该就已经正常了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步