This question already has an answer here:
ISO 8601 date-time format combining 'Z' and offset of '+0000'

(1个答案)


去年关闭。




这两个OffsetDateTime返回不同​​的String表示形式和不同的偏移量。

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

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

我检查了OffsetDateTime.toString() docu,但不确定那是否真的是我应该看的地方...

感谢大家!
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

最佳答案

通常将其称为 Zulu 时间,有关UTC和ISO 8601的信息,请参见wikipedia:

如果时间以UTC为单位,请在时间后直接添加Z,不要留空格。 Z是零UTC偏移量的区域标记。因此,“09:30 UTC”表示为“09:30Z”或“0930Z”。 “14:45:15 UTC”将是“14:45:15Z”或“144515Z”。
ISO 8601时间表示形式中的Z后缀有时也称为“祖鲁时间”,因为使用相同的字母来表示祖鲁时区。但是,定义军事时区列表的ACP 121标准未提及UTC,而是从格林威治标准时间(以前用作国际民用时间标准)得出“祖鲁时间”。 GMT不再由科学界精确定义,并且可以根据上下文引用UTC或UT1。

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

10-04 11:44
查看更多