第 3 课

UTC、本地时间与时区

墙钟与时刻、IANA 时区与夏令时偏移。

Unix 时间戳标识一个 瞬间——全球时间线上的一个点。UTC本地时间 是用不同方式给人类 标注 这一瞬间。

UTC

协调世界时(UTC) 是不含季节性偏移的参考时间尺度。日志若写 “all times UTC”,跨区域对比时不必猜测本地规则。

ISO 字符串末尾的 Z 表示 UTC,例如 2024-01-15T08:30:00Z

本地墙钟

电脑时钟显示 本地墙钟——所在时区的民用时间,含夏令时调整。同一 timestamp,不同开发者可能写出不同读数:

  • Europe/Berlin2024-07-01 09:00
  • Asia/Shanghai2024-07-01 15:00

可能描述 同一瞬间

IANA 时区名

系统使用 America/New_YorkAsia/TokyoIANA 时区数据库 名称,内含历史偏移变更。跨夏令时边界安排未来事件时,优于固定写 “UTC+8”。

纯偏移不是时区。 某天的 UTC+8 无法替代完整 DST 规则。

存储与展示

后端常见做法:

  • UTC 瞬间(时间戳或 TIMESTAMPTZ
  • 仅在 UI 或按用户时区的报表中转本地

要点

时间戳存 何时;时区决定 钟面怎么读。先分清你在看哪一层。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览