--- title: "包含 T 和 Z 的日期时间字符串格式" date: 2025-03-15T23:11:02Z lastmod: 2025-03-15T23:11:27Z tags: [格式,时间,日期] --- # 包含 T 和 Z 的日期时间字符串格式 ECMAScript 基于 ISO 8601 扩展格式的简化定义了日期时间的字符串交换格式。 格式为:`YYYY-MM-DDTHH:mm:ss.sssZ` |内容|描述| | :-----| :-------------------------------------------------------------------| |YYYY|公历中 0000 到 9999 年的十进制数字。| |-|“-”(连字符)在字符串中出现两次,分隔年、月、日。| |MM|一年中的月份,从 01(一月)到 12(十二月)。| |DD|月份中的天数,从 01(第一天)到 31(最后一天)。| |T|表示字符串中的时间部分的开始。| |HH|自午夜以来经过的完整小时数,从 00 到 24 的两位十进制数字。| |:|“:”(冒号)在字符串中出现两次,分隔时、分、秒。| |mm|当前小时经过的完整分钟数,从 00 到 59 的两位十进制数字。| |ss|当前分钟经过的完整秒数,从 00 到 59 的两位十进制数字。| |.|“.”(点)在字符串中出现一次,分隔秒、毫秒。| |sss|当前秒经过的完整毫秒数,从 000 到 999 的三位十进制数字。| |Z|时区,使用 “Z” 表示 UTC,或使用 “+”、“-”,并在后方跟随 HH:mm| ||格式的时间表达式表示偏移量(例如 `+0800` 表示 +8 小时)。| 所有数字必须为**十进制**形式。 如果 `MM`​ 或 `DD` 字段不存在,则使用默认值 “01”。 如果 `HH`​、`mm`​ 或 `ss` 字段不存在,则使用默认值 “00”。 若 `sss` 字段不存在,则使用默认值 “000”。 如果没有指定时区,则把字符串作为**本地时间**进行解析。 由于每天都以午夜开始和结束,所以可以在时间表达式中使用 `00:00`​ 和 `24:00`​ 来区分相同时间点的两个午夜。 也就是说,字符串 `1995-02-04T24:00`​ 和 `1995-02-05T00:00` 可以表示完全相同的时间点。 字符串中可以只包含日期: ``` YYYY YYYY-MM YYYY-MM-DD ``` 字符串中可以只包含时间: ``` THH:mm THH:mm:ss THH:mm:ss.sss ``` 参考资料: - [ECMAScript 2015 Language Specification – Date Time String Format](https://262.ecma-international.org/6.0/#sec-date-time-string-format) - [rfc2822 - Date and Time Specification](https://datatracker.ietf.org/doc/html/rfc2822#section-3.3) ‍