欢迎投稿

今日深度:

jdbc连接mysq之serverTimezone设定方式,

jdbc连接mysq之serverTimezone设定方式,


目录
  • jdbc连接mysq之serverTimezone设定
    • ll下发现可用的时区信息
    • 为解决此问题
  • 总结

    jdbc连接mysq之serverTimezone设定

    mysql返回的时间总是有问题,比实际时间要早8小时。

    检查是jdbc连接的url中配置的时区有问题,原先是

    jdbc:mysql://172.xx.xx.xx:3306/test?useUnicode=true&characterEncoding=gbk&useSSL=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

    尝试了GMT、GMT8、UTC+8,UTC0800等可能的参数均报错。

    后来在mysql文档中发现可用的时区都在/usr/share/zoneinfo目录下

    ll下发现可用的时区信息

    如下:

    lewis@lewis-dzwww:/usr/share/zoneinfo$ ll
    总用量 308
    drwxr-xr-x  21 root root  4096 5月  27 12:54 ./
    drwxr-xr-x 334 root root 12288 6月  21 15:11 ../
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Africa/
    drwxr-xr-x   6 root root  4096 5月  27 12:56 America/
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Antarctica/
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Arctic/
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Asia/
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Atlantic/
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Australia/
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Brazil/
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Canada/
    -rw-r--r--   1 root root  2102 4月  21 02:09 CET
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Chile/
    -rw-r--r--   1 root root  2294 4月  21 02:09 CST6CDT
    -rw-r--r--   1 root root  2437 4月  21 02:09 Cuba
    -rw-r--r--   1 root root  1876 4月  21 02:09 EET
    -rw-r--r--   1 root root  1972 4月  21 02:09 Egypt
    -rw-r--r--   1 root root  3559 4月  21 02:09 Eire
    -rw-r--r--   1 root root   127 4月  21 02:09 EST
    -rw-r--r--   1 root root  2294 4月  21 02:09 EST5EDT
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Etc/
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Europe/
    -rw-r--r--   1 root root   264 4月  21 02:09 Factory
    -rw-r--r--   1 root root  3687 4月  21 02:09 GB
    lrwxrwxrwx   1 root root     2 5月  27 09:07 GB-Eire -> GB
    -rw-r--r--   1 root root   127 4月  21 02:09 GMT
    lrwxrwxrwx   1 root root     3 5月  27 09:07 GMT0 -> GMT
    lrwxrwxrwx   1 root root     3 5月  27 09:07 GMT-0 -> GMT
    lrwxrwxrwx   1 root root     3 5月  27 09:07 GMT+0 -> GMT
    lrwxrwxrwx   1 root root     3 5月  27 09:07 Greenwich -> GMT
    -rw-r--r--   1 root root  1189 4月  21 02:09 Hongkong
    -rw-r--r--   1 root root   128 4月  21 02:09 HST
    -rw-r--r--   1 root root  1190 4月  21 02:09 Iceland
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Indian/
    -rw-r--r--   1 root root  1678 4月  21 02:09 Iran
    -rw-r--r--   1 root root  4475 2月  24 17:01 iso3166.tab
    -rw-r--r--   1 root root  2265 4月  21 02:09 Israel
    -rw-r--r--   1 root root   507 4月  21 02:09 Jamaica
    -rw-r--r--   1 root root   355 4月  21 02:09 Japan
    -rw-r--r--   1 root root   237 4月  21 02:09 Kwajalein
    -rw-r--r--   1 root root 10384 2月  22 23:58 leap-seconds.list
    -rw-r--r--   1 root root   655 4月  21 02:09 Libya
    lrwxrwxrwx   1 root root    14 5月  27 09:07 localtime -> /etc/localtime
    -rw-r--r--   1 root root  2102 4月  21 02:09 MET
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Mexico/
    -rw-r--r--   1 root root   127 4月  21 02:09 MST
    -rw-r--r--   1 root root  2294 4月  21 02:09 MST7MDT
    -rw-r--r--   1 root root  2453 4月  21 02:09 Navajo
    -rw-r--r--   1 root root  2460 4月  21 02:09 NZ
    -rw-r--r--   1 root root  2057 4月  21 02:09 NZ-CHAT
    drwxr-xr-x   2 root root  4096 5月  27 12:56 Pacific/
    -rw-r--r--   1 root root  2705 4月  21 02:09 Poland
    -rw-r--r--   1 root root  3453 4月  21 02:09 Portugal
    drwxr-xr-x  19 root root  4096 5月  27 12:56 posix/
    -rw-r--r--   1 root root  3545 4月  21 02:09 posixrules
    -rw-r--r--   1 root root   414 4月  21 02:09 PRC
    -rw-r--r--   1 root root  2294 4月  21 02:09 PST8PDT
    drwxr-xr-x  19 root root  4096 5月  27 12:56 right/
    -rw-r--r--   1 root root   800 4月  21 02:09 ROC
    -rw-r--r--   1 root root   571 4月  21 02:09 ROK
    -rw-r--r--   1 root root   428 4月  21 02:09 Singapore
    drwxr-xr-x   2 root root  4096 5月  27 12:56 SystemV/
    -rw-r--r--   1 root root  2747 4月  21 02:09 Turkey
    -rw-r--r--   1 root root   127 4月  21 02:09 UCT
    lrwxrwxrwx   1 root root     4 5月  27 09:07 Universal -> Zulu
    drwxr-xr-x   2 root root  4096 5月  27 12:56 US/
    lrwxrwxrwx   1 root root     4 5月  27 09:07 UTC -> Zulu
    -rw-r--r--   1 root root  1873 4月  21 02:09 WET
    -rw-r--r--   1 root root  1528 4月  21 02:09 W-SU
    -rw-r--r--   1 root root 17533 4月  13 16:01 zone1970.tab
    -rw-r--r--   1 root root 19014 4月  13 16:01 zone.tab
    -rw-r--r--   1 root root   127 4月  21 02:09 Zulu

    为解决此问题

    可以选择东8区的Hongkong、Asia/Shanghai或者Asia/Hongkong作为参数,修改后url为

    jdbc:mysql://172.xx.xx.xx:3306/test?useUnicode=true&characterEncoding=gbk&useSSL=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Hongkong

    时间返回就没问题了!

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持PHP之友。

    您可能感兴趣的文章:
    • JDBC连接mysql8和mysql5.7的注意事项
    • JDBC连接Mysql的5种方式实例总结
    • jdbc中自带MySQL 连接池实践示例

    www.htsjk.Com true http://www.htsjk.com/Mysql/47529.html NewsArticle jdbc连接mysq之serverTimezone设定方式, 目录 jdbc连接mysq之serverTimezone设定 ll下发现可用的时区信息 为解决此问题 总结 jdbc连接mysq之serverTimezone设定 mysql返回的时间总是有问题,比实际时间...
    评论暂时关闭