本地数据库时区
发现生产数据库时区是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调度中心