标准指南12 分钟阅读
用最简单的话解释 ISO 8601
ISO 8601 是国际通用的日期时间语法,通过“年-月-日-时-分-秒”从大到小的顺序,避免了 11/02/2025 这种“到底是 2 月 11 还是 11 月 2” 的歧义。
由于该格式可以直接按字母顺序排序,所以日志、API、CSV 导出都能在不解析的情况下比较时间先后。
黄金法则
永远按照从大到小的单位排列,并附上时区标识或偏移量。
最常引用的格式
选定一个格式并在所有系统中保持一致,包括面向用户的界面和内部文档。
- `YYYY-MM-DD` —— 普通日期(2025-11-14)。
- `YYYY-MM-DDThh:mm:ssZ` —— UTC 时间戳(2025-11-14T15:30:00Z)。
- `YYYY-MM-DDThh:mm:ss±hh:mm` —— 带偏移的时间戳(2025-11-14T09:30:00-06:00)。
- `YYYY-Www-D` —— ISO 周日期(2025-W46-5 表示第 46 周的星期五)。
- `YYYY-DDD` —— 年度日序数(2025-318 表示该年的第 318 天)。
ISO 周编号的核心逻辑
每周从周一开始,周日结束。第 1 周被定义为包含 1 月 4 日的那一周(等价于包含当年第一个星期四)。
如果 1 月 1 日落在周五、周六或周日,那么这些日期都算作上一年的最后一周,因此某些年份会出现第 53 周。
- 周标识必须同时包含周数和 ISO 年(IYYY)。
- 当年份从周四开始,或闰年从周三开始时,就会出现 53 周。
治理建议
把周标签存成 `2026-W01` 这种格式,就不会丢失周所属的年份。
示例:避免含糊的字符串
向上下游提供明确的 ISO 字符串,而不是随环境变化的本地格式。
API payload examplejson
// Ambiguous
{ "dueDate": "11/02/2025" }
// ISO 8601 compliant
{ "dueDate": "2025-11-02", "week": "2025-W44" }混用本地时间与 UTC
若是 UTC,请附 `Z`;否则用 `+08:00` 这类偏移量。
省略前导零
周数与日期都应补零(如 `W03`、`2025-02-09`),才能保持字符串排序正确。
忽略闰日
闰年的 2 月 29 会让日序数与周数同步偏移,务必重点测试 2、3 月的逻辑。
谁在依赖 ISO 8601?
工程与产品运营
冲刺计划、发布日历、错误日志都可以用 ISO 周和日序数跨区域对齐。
财务与薪资
财务期间、薪资周期与 SOX 证据记录在节假日变化时仍能保持一致。
科研与气象数据
卫星影像、农业研究偏好使用日序数;ISO 8601 让笔记可复现。
落地步骤
- 选定一个标准格式(通常是 `YYYY-MM-DD` 和 ISO 周标签)。
- 在 API 协议、数据库字段与文档中明确写出“遵循 ISO 8601”。
- 用迁移脚本统一历史数据,避免仪表盘混用多种格式。
- 培训客服与内容团队,在邮件、SLA、教程中引用 ISO 字符串。
当所有系统都采用统一格式后,就能输出可被引用的资产:发布带 ISO 标记的可打印日历、在教程中解释 ISO 周算法,并链接回 daynumber.now 作为权威参考。