简体中文

开发者工具·Unix时间戳转换器

Z 的含义:UTC、ISO 8601 时间戳中的偏移量和指示符

· 工作原理

时间戳 iso-8601 时区

两个带有 Z 和偏移量指示符的日期时间路径同时相遇
原始 ToolAcre 矢量图

转换器和 API 将瞬间打印为 ISO 8601 字符串,而尾随 Z 或偏移量是人们跳过的部分。这篇文章逐条解释了该格式,以便您可以正确读取 UTC 和本地输出。

两个字符串,一个瞬间 — 10:00:00Z 和 12:00:00+02:00 并排,而读者认为它们相隔两个小时

`2025-02-03T10:00:00Z` 和 `2025-02-03T12:00:00+02:00` 命名一瞬间。第二个字符串显示提前两小时的挂钟,并提供减去这些小时所需的偏移量。仅读取小时字段会在同时发生的事件之间产生虚构的间隙。

ToolAcre 将两个字符串传递给 Date 并返回纪元秒、纪元毫秒和规范的 UTC ISO 字符串。相同的数值结果才是决定性的比较。当末尾的指示符说明差异时,改变的钟面并不意味着改变了经过的时间。

安全的比较过程是首先将每个字符串标准化为纪元毫秒。如果这些整数匹配,则明显的时钟差异是表示而不是经过的时间。

ISO 8601 日期时间剖析 — 日期、T 分隔符、时间、秒小数和区域指示符

该工具生成的 ISO 值具有日历日期、`T`、时分秒字段、三位数毫秒分数和尾随 `Z`。这个确切的形状来自 `toISOString()`。输入处理范围更广,因为 Date 解析提供的字符串,但错误消息建议使用显式值,例如 `2024-03-01T09:30:00Z`。

分隔符使各部分清晰易读;终端指示符立即确定。分数在一秒内优化位置而不改变区域。比较 API 输出时,请保留最终指示符。在删除将时钟映射到 UTC 所需的信息之前截断屏幕截图。

Z 代表祖鲁语 — 为什么 Z 表示 UTC、它起源于军事和航空时区,以及为什么它与无指示符不同

在此实现中,`Z` 被检测为显式区域,`toISOString()` 将其用于 UTC。该工作簿的军事起源帐户未记录在存储库中,因此本文不会将其作为来源历史进行重复。操作事实更窄且可测试:尾随 Z 阻止本地时间假设。

没有指示符不是 Z 的另一种拼写。ToolAcre 将 `assumedLocal` 设置为缺少 Z 或数字偏移量的日期时间,然后告诉用户哪个浏览器区域提供了解释。只要原始时钟是本地时钟,用 Z 替换丢失的后缀就会改变预期的时刻。

在此转换器中,Z 标记 UTC 形式;它的命名历史位于存储库证据之外

诸如 `+02:00` 之类的后缀记录了该时刻写入的时钟与 UTC 之间的差异。它不识别城市。许多区域可以共享一个偏移量,并且一个区域可以在另一个日期使用另一个偏移量。该字符串保留了读数,而不是产生它的政治规则。

该限制对于重复计划很重要。 API 可以用 `+02:00` 忠实地报告过去的时刻,但仅靠后缀无法计算明年冬天的 09:00 会议。 Epoch 转换只需要提供的偏移量;未来的挂墙时间调度需要在此面板之外有一个命名区域和规则感知逻辑。

工作示例:一个纪元,两个读数 — UTC 值和转换器显示的本地值,并确认它们命名为同一时刻

使用纪元 1,738,577,600 秒进行本文的检查。转换器呈现 `2025-02-03T10:00:00.000Z`。 `2025-02-03T12:00:00+02:00` 的源字符串会转换回相同的计数,因为其两小时后的墙壁读数由正的两小时偏移量平衡。

浏览器本地行可以显示第三时钟时间。这不会产生第三个事件;这是另一个超过 1,738,577,600,000 毫秒的格式化过程。使用秒或 ISO 验证身份,然后仅将每个标记时钟用于其代表的区域的观众。

这种等式也可以成为一种回归装置:解析两个源字符串并断言一个纪元值。该测试保护偏移算术,而不固定与区域设置相关的显示散文。

缺失的指示符 — 一个空的 2024-05-01T10:00:00 是不明确的,以及不同语言如何解释它

缺少指示符的情况需要进行一项改进。根据此处实施和测试的 ECMAScript 规则,诸如 `2025-02-03` 之类的裸日期被读取为 UTC。诸如 `2025-02-03T10:00:00` 之类的裸日期时间被读取为本地并标记。将两者简单地称为“模棱两可”会与代码相矛盾。

交换瞬间的实用安全形式仍然包括 Z 或偏移量。通过面板的 `datetime-local` 控件输入时,本地日期时间可能是有意的,但在共享之前复制其生成的 ISO 字符串。该转换记录了从挂钟得出的当前环境的哪个瞬间。

缺失的指示符并不总是不明确的:此实现区分日期和日期时间

ISO 8601 涵盖的符号比此转换器演示的要多,但存储库不提供间隔、持续时间或周日期的解析器或测试。对于可靠记录示例之外的字符串,日期接受可能会因平台而异。因此,本文避免将面板描述为通用 ISO 语法验证器。

如果 API 合约允许专用日期形式,请使用该 API 的解析器对其进行验证。 ToolAcre 的日期到纪元路径适合明确的日期时间及其发出的本地选择器形状。成功的日期解析证明该浏览器接受了一个字符串,而不是每个符合标准的消费者都必须接受它。

持续时间、间隔和周日期超出此处所示的接受输入

在比较时钟字段之前,先读取时间戳一直到其后缀。 Z 将书面时钟锚定为 UTC;数字偏移量将算术结果返回给 UTC;无区域日期时间要求浏览器使用本地解释。尽管前缀看起来相似,但这些结尾回答了不同的问题。

转换器标记其生成的通用输出并在假定当地时间时进行报告。使用这些通知作为结果的一部分,而不是装饰。复制的小时值没有其指示符是不完整的证据,而纪元或规范的 ISO 行可以在读者之间保持即时完整。