日期时间格式对照表

日期时间格式对照: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 3339ISO 8601 的严格子集,常用于 API2023-09-01T12:00:00+00:00
RFC 2822 / 1123HTTP 头常用的日期格式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:ss24 小时制时间12:00:00
hh:mm A12 小时制带 AM/PM12:00 PM
YYYY-MM-DD HH:mm:ss常用数据库 datetime2023-09-01 12:00:00
相对时间如 "3 分钟前",用于社交/日志展示3 minutes ago
季度 Qn-YYYY财季/季度表示Q3-2023
ISO 周 Www-yyyyISO 周编号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" 这类无时区歧义写法。