支柱内容
时间戳与时区指南
一份面向实战的时间参考,帮助你做时间戳转换、时区比对,并避开最常见的“差几小时”问题。
大多数时间问题并不是算错了,而是默认前提不一致:后端存的是 UTC,前端展示的是本地时间;报表只写日期,不写时区;秒级时间戳被当成毫秒级处理。一旦发生,表面看起来像随机错误,根因其实非常稳定。
第一问:源时间到底属于哪个时区?
不要一上来就转换数字,先把原始时区、目标展示时区,以及两者之间的格式边界说清楚。只要这三者有一个是隐含的,转换就已经不安全。真正可靠的流程,会在发版说明、Cron 任务或会议排期生成之前把这三件事写明。
最浪费排查时间的几类错误
最致命的一类是把秒和毫秒混用;第二类是把本地墙上时间序列化成了看似 UTC 的值;第三类是展示 ISO 字符串时不告诉用户它属于哪个时区。只要测试数据没跨夏令时边界、也没跨地区交接,这三类问题都很可能躲过单元测试。
- 文档和界面里的可读时间,必须带明确时区标识。
- 排查时把原始 epoch 值和格式化字符串并排保留。
- 涉及排期逻辑时,至少跨两个地区测一个例子再上线。
一套实用的浏览器核对法
先把时间戳转成 UTC,再转成目标时区,最后和原始业务预期对照。如果任务里还包含日期加减,把这一步单独做,不要把“时区换算”和“日期运算”混在一个脑内跳跃里。把步骤拆开,比凭感觉猜靠谱得多。
相关阅读
指南与工作流
相关工具
工具库