TGViewer
Laisky's Notes Laisky's Notes @laiskynotes · 3.34K subscribers
Post #397 2.49K
https://laisky.notion.site/Time-Zone-Handling-for-Software-Engineers-A-Comprehensive-Technical-Handbook-2b3ba4011a8680f2b895f51f19b62dad?source=copy_link

让 DeepResearch 帮忙总结了一篇关于时区的报告。最近都不怎么喜欢搜索文章了,想到什么问题就扔给 DeepResearch 让它给我写一篇报告。

因为中国只有一个时区,很多开发人员都会忽略时区问题,我加入很多团队都帮忙处理过时区相关的问题(另一个经常被忽略的是编码问题)。

首先,在用户看不见的后端使用 UTC 时间是一个很好的习惯,但是 UTC 并不是银弹,并不能取代时区。

时区并不仅仅只是相对于 UTC 的一个固定偏移量,而是代表某一地区时间变化的历史和规则。比如某地可能在某一个时刻,决定让时钟拨快或拨慢一小时,这些规则的处理都必须依赖准确的当地时区数据,而不是 UTC 能够解决的。同理,不同的时区也不能随意的互相替换,即使在当前时刻它们的 UTC 偏移量相同。

比如关于冬令时/夏令时的调整,就会导致当地的某一时刻在两个不同时区出现两次,而另一个时刻则根本不存在。

关于时间的存储,UTC 仅能满足对于时刻的存储需求。只要涉及到当地事件、时间的相对计算、日程安排(牵涉星期、月份日期、节假日)等,都必须结合使用当地时区信息进行计算。而且由于用户可能会进行跨时区迁移,最好能够让用户自行选择自己的时区信息(比如 Google Calendar 的做法)。

重点:

* 如果你只需要时刻信息(Instant),使用 UTC 存储和传输是一个好习惯。
* 但是如果你需要任何基于当地时间的计算,必须携带时区信息。

BTW,时区的英文缩写存在重名,在沟通中不要使用简写。比如 CST 既可以是 China Standard Time 也可以是 Central Standard Time。 我以前和美国的团队协作时就遇到过歧义。
laisky on Notion 🤖Time Zone Handling for Software Engineers: A Comprehensive Technical Handbook | Notion Introduction
  • 👍 11
  • ❤ 3
More from @laiskynotes
  1. Oct 6, 2026https://x.com/LaiskyCai/status/2107307813727060123?s=20 codex 最近有三个完全免费的工具,结合之后可以发挥非常强大能力:…
  2. Sep 15, 2026学习了一下 OpenAI 推出的 Agents API https://openai.com/index/introducing-the-agents-api/ 众所周知 Agen…
  3. Aug 28, 2026前阵子读了本很有趣的书,侯杨方的《这才是丝绸之路》。作者抛开抽象的文本溯源,而是采用实地考察的方式,重走了真实的丝绸之路。此书给我最大的感触就是:真实而且符合常理。 在我以前的想象…
  4. Jun 5, 2026读完 Mario Puzo 的《教父 The Godfather》三部曲小说,才意识到自己当年年轻时根本完全就没看懂电影《教父》。然后又去把电影重温了一遍,才发现原来电影里有很多细…
  5. May 22, 2026记录一下最近遇到的一个糟心事儿。 最近两个月开始又开始找工作机会,总的来说很不顺利,托朋友联系了两个内推也是石沉大海。(各位要是有远程工作的机会也请联系 job@laisky.co…
  6. May 14, 2026作为一个从业十多年的程序员,我已经半年没手写过一行代码了。上个月大概提交了 20 万行,这个月大概 4 万行。 昨天认真考虑了一下这个现象,我个人认为,虽然 AI 仍然存在显然的不…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →