日期时间格式对照表
日期时间格式对照:Unix 时间戳、ISO 8601、RFC 3339、RFC 2822 等标准格式,以及常见展示写法的含义与示例,处理时间字段时快速查阅。
| 格式 | 含义 | 示例 |
|---|---|---|
| Unix 时间戳 | 自 1970-01-01 UTC 起的秒数(或毫秒) | 1693564800 |
| ISO 8601 | 国际标准化组织日期时间格式 | 2023-09-01T12:00:00Z |
| ISO 8601(含时区偏移) | 带 +08:00 等偏移的本地时间 | 2023-09-01T20:00:00+08:00 |
| RFC 3339 | ISO 8601 的严格子集,常用于 API | 2023-09-01T12:00:00+00:00 |
| RFC 2822 / 1123 | HTTP 头常用的日期格式 | Fri, 01 Sep 2023 12:00:00 GMT |
| YYYY-MM-DD | 仅日期(ISO 日期) | 2023-09-01 |
| YYYY/MM/DD | 斜杠分隔日期(中文习惯) | 2023/09/01 |
| YYYY年M月D日 | 中文长日期 | 2023年9月1日 |
| HH:mm:ss | 24 小时制时间 | 12:00:00 |
| hh:mm A | 12 小时制带 AM/PM | 12:00 PM |
| YYYY-MM-DD HH:mm:ss | 常用数据库 datetime | 2023-09-01 12:00:00 |
| 相对时间 | 如 "3 分钟前",用于社交/日志展示 | 3 minutes ago |
| 季度 Qn-YYYY | 财季/季度表示 | Q3-2023 |
| ISO 周 Www-yyyy | ISO 周编号 | W35-2023 |
| Duration(ISO 8601) | 时间段表示法 | P1Y2M3DT4H5M6S |
| 毫秒时间戳 | JavaScript Date.now() 返回值 | 1693564800000 |
常见问题
Unix 时间戳是秒还是毫秒?
通常是秒(如 1693564800),但 JavaScript 的 Date.now() 与很多前端库返回毫秒(13 位)。互操作时要确认单位,必要时 ×1000 或 ÷1000 转换,否则会差出 1000 倍导致时间远到 1970 或 50000 年。
ISO 8601 和 RFC 3339 有什么区别?
RFC 3339 是 ISO 8601 的一个严格子集:要求完整的日期时间、必须带时区(Z 或 ±hh:mm)、不允许空格分隔日期与时间。写 API 时优先 RFC 3339,可读性最好。
UTC、GMT 和时区偏移 +08:00 是什么关系?
UTC 与 GMT 在日常使用中可视为等同(GMT 是时区名,UTC 是时间标准)。+08:00 表示比 UTC 早 8 小时(如中国标准时间)。存时间建议统一用 UTC(或带偏移),展示时再按用户时区转换。
数据库该存哪种时间格式?
关系型数据库优先用原生 datetime/timestamp 类型(由数据库保证时区与格式);若以字符串存储,统一用 ISO 8601/RFC 3339 并明确时区,避免 "2023-09-01 12:00" 这类无时区歧义写法。