Java中Date夏令时日期转换不一致问题

1,993 阅读1分钟

参考:

那些年我们踩过的坑——Java中Date夏令时日期转换不一致问题

全网最全!彻底弄透Java处理GMT/UTC日期时间 - 博客园

一次因JDK夏令时导致接口输出日期格式的时间与预期时间不一致的bug排查总结

夏令时:参考baike.baidu.com/item/%E5%A4…

解决办法:

1.推荐办法:

Asia/Shanghai与GMT+8的区别 开发和运维经常见到的Asia/Shanghai与GMT+8的是什么意思呢? GMT+8是东八区,北京时间和东八区一致。 Asia/Shanghai是已地区命名的地区标准时,在中国叫CST。这个地区标准时会兼容历史各个时间节点。中国1986-1991年实行夏令时,夏天和冬天差1个小时,Asia/Shanghai会兼容这个时间段。 结论:1992年以后,在中国,GMT+8和Asia/Shanghai是一样的时间,1986-1991之间,夏天会有一小时时差。 ———————————————— 版权声明:本文为CSDN博主「鲫鱼哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:blog.csdn.net/zjy_love_ja…

保持时区一致问题得到解决

#jackson日期格式化 
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 
spring.jackson.time-zone=Asia/Shanghai

2.关于JDK处理夏令时(特指中国的夏令时)确实出现过问题且造成过bug,当时对应的JDK版本是1.8.0_2xx之前版本格式化那个日期出问题了,在这之后的版本貌似就没问题了。这里我提供的版本信息仅供参考,若有遇到类似case就升级JDK版本到最新吧,一般就不会有问题了。

3.设置应用的 TimeZone.setDefault(TimeZone.getDefault().getTimeZone("GMT+8"));

image.png

4.或加启动参数 -Duser.timezone=GMT+8

image.png