Java DateTimeFormatter在时区为+0000时添加Z

问题描述 投票:0回答:1

假设我有两个约会:´

  • 20191105235900
  • 20190802235900

我将dateTimeFormatter与SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.getDefault());一起使用

最后我得到这个:

  • 2019-11-05T23:59:00Z-错误,正确的将是2019-11-05T23:59:00 + 00:00
  • 2019-08-02T23:59:00 + 01:00-正确

而且我不能只用+00:00替换Z,因为那将是另一个处理步骤。

完整代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.getDefault());
this.timestampString = sdf.format(date);    
java datetime datetime-format
1个回答
0
投票

[查看the Wikipedia Page for ISO 8601时,您会发现这是预期的行为:

世界标准时间(UTC)

如果时间是UTC,请在时间后直接添加Z,不要留空格。 Z是零UTC偏移量的区域标记。因此,“ 09:30 UTC”表示为“ 09:30Z”或“ 0930Z”。 “ 14:45:15 UTC”将是“ 14:45:15Z”或“ 144515Z”。

ISO 8601时间表示形式中的Z后缀有时称为“祖鲁时间”,因为相同的字母用于指定祖鲁时区。但是,定义军事时区列表的ACP 121标准未提及UTC,而是从格林威治标准时间[28]导出“祖鲁时间”,格林威治标准时间以前是国际民用时间标准。 GMT不再由科学界精确定义,并且可以根据上下文引用UTC或UT1。[29]

任何客户端都应该能够解析它。

© www.soinside.com 2019 - 2024. All rights reserved.