【问题标题】:DateTimeFormatter exception parsing its own print result [duplicate]解析自己的打印结果的 DateTimeFormatter 异常[重复]
【发布时间】:2020-06-05 16:42:21
【问题描述】:

我不明白的东西,我有这个代码:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
System.out.println(LocalDateTime.parse(LocalDateTime.now().format(fmt), fmt));

这个生成和异常:

Exception in thread "main" java.time.format.DateTimeParseException: Text '20200605102607066' could not be parsed at index 0
    at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
    at java.time.LocalDateTime.parse(LocalDateTime.java:492)
    at Test.main(AccountPasswordHistoryTypeHandler.java:102)

但如果我将模式更改为在日期部分和时间部分之间有一个分隔符:"yyyyMMdd_HHmmssSSS" 它会按预期工作。

为什么格式化程序不能解析自己的结果?

【问题讨论】:

  • 对我来说很好用,你用的是什么java版本?
  • 还要检查ideone demo
  • 我使用的是 jdk 1.8u251
  • @Sweeper 抱歉,我没看到这篇文章。

标签: java datetime dateformatter


【解决方案1】:

这是 Java8 中的一个错误,请检查:

JDK-8031085 : DateTimeFormatter won't parse dates with custom format "yyyyMMddHHmmssSSS"

在新版本中已修复。

【讨论】:

  • 非常感谢,我会使用解决方法。
  • 或者升级到你的 JDK @iXô 修复了许多错误和许多其他功能
  • 比我想做的还要2年多:(也许年底我会成功让上级明白。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 2021-09-06
  • 2014-04-01
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多