Java 8 DateTimeFormatter 解析远期 ISO 日期失败

Hei*_*erg 3 java java-time

我遇到了一个问题,DateTimeFormatter.ISO_DATE_TIME如果年份大于 9999,则无法解析日期。我正在寻找错误报告或了解我做错了什么。另外 -JodaTime解析适用于同一字符串。Java 版本 - 8。此测试失败:

    public void testParseFarInTheFuture()
    {
        String str = "10000-04-11T01:24:55.887-03:56";

        DateTimeFormatter.ISO_DATE_TIME.parse(str);
    }
Run Code Online (Sandbox Code Playgroud)

与 9999 年的测试相同。

我做错了什么还是有错误?

Bas*_*que 7

前置+

  • 超过四位数字的年份预计会有一个前导加号字符 ( +) 表示正年份 (AD)。
  • 任何整数计数的负年份 (BC) 始终以减号 ( -) 开头。

java.time类通常遵循 ISO 8601 标准规定的规则。请参阅有关ISO 8601 处理年限的维基百科页面。

代码:

OffsetDateTime ldt = OffsetDateTime.parse( "+10000-04-11T01:24:55.887-03:56" ) ;
Run Code Online (Sandbox Code Playgroud)

请参阅在 IdeOne.com 上实时运行的代码