使用Java调整数据库连接MySQL时区
问题描述:
MySQL正在运行在“GMT 8”时区,而 Tomcat 使用“GMT”。当使用 Java 与数据库交互时,这种差异会导致日期时间存储和检索不一致。尽管在连接 URL 中设置了“useTimezone=true”和“serverTimezone=GMT”,问题仍然存在。
解决方案:
要解决时区不匹配问题,请执行以下操作建议方法:
禁用旧日期时间代码:
更新连接 URL 以包含“useLegacyDatetimeCode=false”。这将激活 MySQL 中管理时间戳的更新且更准确的方法。
String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false";
对时间戳使用空日历:
设置时使用 setTimestamp 方法设置时间戳,请确保没有提供 Calendar 对象作为第三个参数。此步骤将允许根据数据库的时区格式化日期对象。
getTimestamp(int, Timestamp)
指定服务器时区(可选):
如果 MySQL 在确定服务器时区时遇到歧义,则可能需要在连接中显式指定它URL。
String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&serverTimezone=America/New_York";
通过实施这些措施,可以消除 MySQL 和 Java 之间的时区不匹配,确保数据库中正确的日期时间存储和检索。
以上是当 `useTimezone=true` 失败时如何解决 MySQL 和 Java 时区不匹配问题?的详细内容。更多信息请关注PHP中文网其他相关文章!