You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动Java应用遇MySQL时区错误,如何通过连接字符串指定时区?

解决JDBC连接时的AEDT时区错误

这个问题我碰到过好多次了,本质是MySQL驱动(尤其是8.0以上版本)对有些非标准时区标识符识别不友好,AEDT就是其中之一。你只需要在JDBC连接字符串里明确指定更具体的时区值就行,不用改服务器配置。

给你几个可行的配置方式:

  • 直接用UTC时区(最稳妥,很多生产环境都这么用):
    javax.persistence.jdbc.url=jdbc:mysql://your-host:3306/your-db?serverTimezone=UTC
    
  • 如果你想对应澳大利亚东部的时区,可以用Australia/Sydney这个标准时区ID,它会自动处理夏令时(包括AEDT):
    javax.persistence.jdbc.url=jdbc:mysql://your-host:3306/your-db?serverTimezone=Australia/Sydney
    
  • 也可以用GMT+11来直接指定偏移量,但这种方式不会自动适配夏令时变化,不如上面的时区ID灵活:
    javax.persistence.jdbc.url=jdbc:mysql://your-host:3306/your-db?serverTimezone=GMT%2B11
    
    注意这里的+要转成URL编码的%2B,不然会被当成参数分隔符处理。

另外提醒下,如果你用的是MySQL 8.0+的驱动,记得确保驱动版本和URL参数匹配,老版本驱动可能不需要这个配置,但新版本默认要求明确时区。

内容的提问来源于stack exchange,提问作者masber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:18:15