相关文章推荐
本地数据库时区

发现生产数据库时区是UTC,而我本地的是CST,会不会跟这个有关系,继续进一步深挖

看了下jdbc连接的url中配置的时区参数(我用的数据库版本是 mysql8.0 以上的)

没错啊, &serverTimezone=GMT%2B8 ,是东八区啊,很奇怪

UTC代表的是 全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。mysql 使用了UTC方式来记录日志时间,也就是说这是个世界统一时间,存入mysql中的时间只能是UTC时间。mysql的timestamp类型数据,存储的时候会转化成UTC时间戳,读取时再从UTC转化为本地时间戳。各地的标准时间为格林威治时间(G.M.T)加上 (+) 或减去 (-) 时区中所标的小时和分钟数时差。中国是 GMT+8 .

根据这个信息,我的解决办法:

CTT - Asia/Shanghai,在jdbc的连接里使用&serverTimezone=CTT

最后重新启动应用

docker stop 容器ID
docker start 容器ID

ok,没问题,可以正确的插入时间

java.time.ZoneId类的帮助文档和源码定义了时区

  • EST - -05:00
  • HST - -10:00
  • MST - -07:00
  • ACT - Australia/Darwin
  • AET - Australia/Sydney
  • AGT - America/Argentina/Buenos_Aires
  • ART - Africa/Cairo
  • AST - America/Anchorage
  • BET - America/Sao_Paulo
  • BST - Asia/Dhaka
  • CAT - Africa/Harare
  • CNT - America/St_Johns
  • CST - America/Chicago
  • CTT - Asia/Shanghai
  • EAT - Africa/Addis_Ababa
  • ECT - Europe/Paris
  • IET - America/Indiana/Indianapolis
  • IST - Asia/Kolkata
  • JST - Asia/Tokyo
  • MIT - Pacific/Apia
  • NET - Asia/Yerevan
  • NST - Pacific/Auckland
  • PLT - Asia/Karachi
  • PNT - America/Phoenix
  • PRT - America/Puerto_Rico
  • PST - America/Los_Angeles
  • SST - Pacific/Guadalcanal
  • VST - Asia/Ho_Chi_Minh

  • SpringBoot服务时间与linux服务器时间相差8小时 Error response from daemon: Get https://registry1docker.io/v2解决 Docker构建arthas-tunnel-server镜像 Docker安装Arthas Docker安装Kafka及图形界面 Docker镜像方式搭建xxl-job调度中心
     
    推荐文章