问题
我们在网站上编辑生日时候 1989 左右的日期会莫名其妙少了一天如图所示
1989-05-27 00:00:00 会变成 1989-05-26 23:00:00
莫名其妙少了一个小时,要不是服务器在我这,我都怀疑是不是买到缅甸服务器了
试了许多种方法数据库 url 链接加上时区
数据库修改时区为东八区等等 全都无效
最后修改了
突然生效了 脑袋懵掉了,为什么 GMT+8 明明代表的是东八区,为何会突然少了一个小时?
原因
根据网上找到的说法
Daylight Saving Time 中文名叫“夏令时”,一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。中国 1986-1991 年实行夏令时,1992 年废除。
没错,就是这么坑
结论
GMT-8 是东八区,北京时间和东八区一致。
Asia/Shanghai 是已地区命名的地区标准时,在中国叫 CST。这个地区标准时会兼容历史各个时间节点。中国 1986-1991 年实行夏令时,夏天和冬天差 1 个小时,Asia/Shanghai 会兼容这个时间段。
1992 年以后,在中国,GMT-8 和 Asia/Shanghai 是一样的时间,1986-1991 之间,夏天会有一小时时差。
使用 Asia/Shanghai 时会处理夏令时。使用 GMT+8 时不会处理夏令时,因为 GMT+8 不能确定是哪个国家,也就无法使用各个国家规定的夏令时了。
作者:windvibra
链接:windvibra 的辣鸡博客
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于