这两个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
答案 0 :(得分:4)
这通常称为 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表示具有 z ero偏移量的UTC时间戳。