前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >时间插入 MySQL 数据库,结果竟然少了 8 小时!

时间插入 MySQL 数据库,结果竟然少了 8 小时!

作者头像
芋道源码
发布2020-12-08 14:23:02
4.1K0
发布2020-12-08 14:23:02
举报
文章被收录于专栏:芋道源码1024芋道源码1024

最近在用mybatis时发现,将LocalDateTime插入到数据库时时间少了8小时。

用网上其他方法试了不少,比如修改mysql时区,都不能解决。最后发现是JDBC连接的参数写错了。

经常在网上看到jdbc连接里边有这样一个参数&serverTimezone=UTC。这个UTC是协调世界时,我们中国在东八区,也就是UTC+8,和UTC差了8个小时。

这就是为什么时间插入数据库后少了8小时的原因。那么中国的时区是多少呢?在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

可以看到CTT - Asia/Shanghai,所以我们在jdbc的连接里使用&serverTimezone=CTT就可以正确的插入时间了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 芋道源码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档