在 JavaScript 应用中正确的实现时区切换

September 12, 2020

这篇文章本来写了很多,最终结论是老老实实用 Moment.js 或者 Day.js 这种处理日期非常成熟的库,时区处理这个问题的难点在于历史上各国对于时区的处置太操蛋,在加上夏令时和冬令时,时区方面的坑太多了。

有几个点需要科普下:

  • 正确的时区(timezone)表示法是指 Asia/ShanghaiAmerica/New_York 这种格式
  • +8-5 这种格式是当前时间相对于 UTC 时间的偏移量(UTC offset),不要把它和时区认为是同一个概念,为什么呢,因为某些地区的时间是有夏令时和冬令时的,也就是说同一个地区,它的偏移量在冬天和夏天是不一样的
  • 有一个叫 IANA 的组织专门建立了一个庞大的数据库用于保存地球上各个地区的时区信息,很多编程语言或者日期处理库都会用到这份数据来处理时区问题

香港时间截图

如果你对时区这个话题非常感兴趣,可以继续阅读以下文章:

如果你喜欢我的内容,请考虑请我喝杯咖啡☕吧,非常感谢🥰 。

If you like my contents, please support me via BuyMeCoffee, Thanks a lot.