偏移日期时间中的 Z 偏移量是多少?



这两个 OffsetDateTime 返回不同的字符串表示形式和不同的偏移量。

触发时间是在不同的服务中创建的,但也是通过OffsetDateTime.now()然后通过 RabbitMQ 发送的。

这些只是ISO-8601格式的不同表示形式吗?还是我缺少有效的偏移值?

我检查了OffsetDateTime.toString()文档,但不确定这是否真的是我应该寻找的地方......

谢谢大家!

OffsetDateTime offsetDateTime = event.getTriggerTime();
System.out.println(offsetDateTime); //2019-06-19T08:56:19.152564Z
System.out.println(OffsetDateTime.now()); //2019-06-19T10:56:19.293893+02:00

这通常被称为祖鲁时间,请参阅维基百科的UTC和ISO 8601:

如果时间采用 UTC,则在时间之后直接添加 Z,不带空格。Z 是零 UTC 偏移的区域指示符。因此,"09:30 UTC"表示为"09:30Z"或"0930Z"。"14:45:15 UTC"将是"14:45:15Z"或"144515Z"。

ISO 8601 时间表示中的 Z 后缀有时称为"祖鲁时间",因为相同的字母用于指定祖鲁时区。然而,定义军事时区列表的ACP 121标准没有提到UTC,而是从格林威治标准时间中得出"祖鲁时间",格林威治标准时间以前被用作国际民用时间标准。格林尼治标准时间不再由科学界精确定义,可以根据上下文指代UTC或UT1。

TL;DR:Z 表示带有zero 偏移量的 UTC 时间戳。

最新更新