【问题标题】:unable to parse String to ZonedDateTime无法将字符串解析为 ZonedDateTime
【发布时间】:2021-02-23 15:15:48
【问题描述】:

我试图解析一串日期时间“20201211100938Z+0000”,但我找不到合适的 DateTimeFormatter 用于此目的。对于所有的试验,我得到了某种解析异常。您能否帮助在

中使用正确的 DateTimeFormatter
ZonedDateTime.parse("20201211100938Z+0000", **formatter**)

【问题讨论】:

  • 你能给我们看看格式化程序吗?
  • @YCF_L 以下是我尝试过的格式化程序。我尝试了多种格式化程序,但找不到合适的。 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddhhmmssXX");
  • 您尝试解析的字符串似乎错误。有关Z+0000 的组合,请参阅this answer
  • @HernánAlarcón 这是我从另一个上游应用程序获得的字符串。我无法更改该格式。这就是为什么我在寻求帮助来解析它。

标签: java zoneddatetime


【解决方案1】:

试试下面的。您需要将日期中现有的 Z 视为文字。

ZonedDateTime zdt= ZonedDateTime.parse("20201211100938Z+0000",
        DateTimeFormatter.ofPattern("yyyyMMddHHmmss'Z'Z"));
System.out.println(zdt);
System.out.println(zdt.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss'Z'Z"));

打印

2020-12-11T10:09:38Z
20201211100938Z+0000

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 2012-10-21
    相关资源
    最近更新 更多