文档首页/ 分布式数据库中间件 DDM/ 常见问题/ DDM通用类/ 数据库时间与北京时间相差13或14小时该如何解决
更新时间:2022-06-06 GMT+08:00

数据库时间与北京时间相差13或14小时该如何解决

问题现象

数据库时区设置为北京时间时,通过JDBC连接DDM,查询到的时间与北京时间相差13或14小时。

原因分析

JDBC驱动连接DDM时会向DDM查询数据库时区设置,DDM返回时区为CST(中国标准时间)。

CST有4种含义:

  • 美国中部时间 Central Standard Time (USA) UTC-06:00
  • 澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30
  • 中国标准时 China Standard Time UTC+08:00
  • 古巴标准时 Cuba Standard Time UTC-04:00

在JDBC驱动中,会将CST时间解析为美国中部时间,与北京时间相差了13或14个小时。

解决方法

在JDBC连接数据库的字符串中添加时区配置项:

jdbc:mysql://xxx:3306/database_name?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8