跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 苦于最近被时区整疯了,来 v 站求助
未分類
20 1 月 2022

苦于最近被时区整疯了,来 v 站求助

苦于最近被时区整疯了,来 v 站求助

資深大佬 : wuxi889 32

最近碰到个问题,就是在处理 America/Whitehorse 时,执行程序上进行获取时区为 GMT-7 ,但是在前端包跟 MySQL 的 CONVERT_TZ 上获取却变成了 GMT-8。最后我去 google 了一把,发现正确的时区应该是 GMT-7,这把我弄乱了,这个时区到底是啥。如果是 -7 的话,那么 MySQL 中该怎么处理呢。

大佬有話說 (19)

  • 資深大佬 : aureole999

    盲猜夏令时

  • 資深大佬 : wangkun025

    whitehourse 笑了。

  • 資深大佬 : mason961125

    @aureole999 冬令时了吧…

  • 資深大佬 : wwbfred

    @aureole999 夏令时是调快一个小时啊,变成 GMT-6
    @wangkun025 有个地方叫 Whitehorse ,在加拿大。

  • 資深大佬 : wangkun025

    @wwbfred 查到了。谢谢你。

  • 主 資深大佬 : wuxi889

    @wwbfred
    @mason961125
    不对,不管夏令时还是冬令时,都只是 3 月 或 11 月的某某天调快或调慢一个小时,时区是不会变的

  • 資深大佬 : wwbfred

    @wuxi889 表示会变的,比如这个。
    https://zh.wikipedia.org/wiki/%E5%8C%97%E7%BE%8E%E4%B8%9C%E9%83%A8%E6%97%B6%E5%8C%BA

  • 資深大佬 : xiaopc

    根据 time .is 上面的提示,加拿大育空地区(白马市为其首府)在 2020 年取消了夏令时 /冬令时,统一为 PDT ( UTC-7 )时区
    2020 年前,America/Whitehorse 分别使用 PST ( UTC-8 )和 PDT ( UTC-7 )这两个时区
    问题可能是没更新软件和时区数据
    MySQL 应该直接存 UTC ,在应用层再转换

  • 資深大佬 : Sylv

    研究了下,发现这个问题其实比夏冬令时复杂点,有点意思:
    America/Whitehorse 是加拿大育空省( Yukon )的时区标识符,白马市( Whitehorse )是育空省的省会,也是唯一一个城市。
    2020 年以前,育空时间( Yukon Time )是和太平洋时间( Pacific Time )保持一致的:夏时令是 UTC-7 (三月第二个星期日 2 am → 3 am ),冬时令是 UTC-8 (十一月第一个星期日 2 am → 1 am )。
    2020 年,育空省立法通过从 2020 年起取消冬时令,育空时间全年停留在夏时令 UTC-7 。
    (育空省从四万多居民中收到了 4,829 份有效的调查问卷,其中 93% 支持取消夏冬令时制度,而在其中 70% 支持停留在夏时令 UTC-7 。)
    除了育空省以外,加拿大和美国多省州也在推动取消夏冬令时制度,可谓大势所趋。
    —
    所以今天这日期( 2021-11-17 ):在 2020 年以前,America/Whitehorse 是 UTC-8 ;在 2020 年以后,America/Whitehorse 是 UTC-7 。
    你的「前端包跟 MySQL 」应该是没有更新,还采用过时的时区数据,所以就出现了这个问题。

  • 主 資深大佬 : wuxi889

    @xiaopc
    @Sylv
    哈哈哈,我也查到了。感谢两位。

  • 資深大佬 : wwbfred

    @Sylv 神奇的操作,从没想过还有这样的

  • 資深大佬 : Buges

    所有时间的处理永远用 UTC ,只在显示的时候根据 locale 格式化成对应的时区和格式。

  • 資深大佬 : renmu123

    时区是一个超级复杂的东西,历史遗留很多,之前有听 ggtalk 还是哪个播客聊过

  • 資深大佬 : Tumblr

    @wwbfred #7 @xiaopc #8 两位是把 time zone 和时间的 offset 搞混了,time zone 是不会变化的,DST 变的是 offset 。
    不过这个问题#9 大佬 @Sylv 已经给出解释了,10 月底我们的 team meeting 上来聊到过这个话题(我当时只是单纯吐槽 DST 搞得要订会议太恶心,然后几个地方的小伙伴就聊起来了,也说到了取消)。

  • 資深大佬 : xiaopc

    @Tumblr
    America/Whitehorse 是 IANA 时区标识符
    Wikipedia 上 Pacific Time Zone 条目:
    In the United States and Canada, this time zone is generically called the Pacific Time Zone. Specifically, time in this zone is referred to as Pacific Standard Time (PST) when standard time is being observed, and Pacific Daylight Time (PDT) when daylight saving time is being observed.

  • 資深大佬 : julyclyde

    想当年朝鲜改成“东 8.5”时区,windows 过了大概 9 个月才发布更新
    然后朝鲜又改回去了……

  • 主 資深大佬 : wuxi889

    @julyclyde 哈,现在还有好多 .5 时区的,我们都取消这些时区选择了。太蛋疼了

  • 資深大佬 : julyclyde

    @wuxi889 这还是得看业务需求吧……user generated 数据如果就在那个时区呢?

  • 主 資深大佬 : wuxi889

    @julyclyde 是看需求,直接把 .5 时区的选项给砍了,哈哈

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具