mysql jdbc url 设置时区

jdbc url

jdbc:mysql://59.110.137.112:3306/answer?useUnicode=true&characterEncoding=utf8
&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
&nullCatalogMeansCurrent=true

设置时区

设置时区时,添加 serverTimezone 参数,比如 serverTimezone=GMT%2B8(URL 中 %2B 表示 + 号,GMT%2B8 即为 GMT+8)。

  • GMT+8 表示东八区,北京时间
  • Asia/Shanghai 表示上海时间,也是东八区

mysql 时区的影响

前言

  • mysql 5.7.31
  • jdk 1.8

mysql 的时区

假设有个 java 应用,通过 jdbc 连接 mysql,而 mysql 安装在 linux 上,此时有哪些时区?

  • linux 有个时区
  • mysql 有个时区
  • jdbc 有个时区
  • java 应用所在的 jvm 有个时区

上面几个时区中,能够影响 mysql 中数据的有 2 个时区:

  • mysql 有个时区(设置方法:mysql 时区设置
  • jdbc 有个时区(设置方法:网上搜索)

jdbc 时区

当 java 对象类型是 Date 类型,mysql 字段类型为 datetime、timestamp 等日期类型时,jdbc 时区设置起作用。

mysql 时区

当使用 mysql 函数 UNIX_TIME ()、FROM_UNIXTIME 进行日期转换时,mysql 时区起作用。

假如使用 mysql 函数 UNIX_TIME ()、FROM_UNIXTIME 进行日期转换时,发现日期有偏差,先检查 mysql 时区值是否与预期相符。

 

posted @ 2024-06-27 10:14  CharyGao  阅读(124)  评论(0)    收藏  举报