我正在尝试使用 解析 0 到 1000 范围内的 Year String 值java.time.Year.parse(),但是解析失败java.time.format.DateTimeParseException: Text '999' could not be parsed at index 0。
Year.parse状态的javadoc :
Obtains an instance of Year from a text string such as 2007.
The string must represent a valid year. Years outside the range 0000 to 9999
must be prefixed by the plus or minus symbol.
Run Code Online (Sandbox Code Playgroud)
重现此问题的示例测试:
Obtains an instance of Year from a text string such as 2007.
The string must represent a valid year. Years outside the range 0000 to 9999
must be prefixed by the plus or minus symbol.
Run Code Online (Sandbox Code Playgroud)
当999达到年份时,测试抛出异常:
Parsing year: 1003
Parsing year: 1002
Parsing year: 1001
Parsing year: 1000
Parsing year: 999
java.time.format.DateTimeParseException: Text '999' 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.Year.parse(Year.java:292)
at java.time.Year.parse(Year.java:277)
[...]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
需要补齐4位
Year.parse(String.format("%04d", i));
Parsing year: 2000
Parsing year: ....
Parsing year: 4
Parsing year: 3
Parsing year: 2
Parsing year: 1
Parsing year: 0
Run Code Online (Sandbox Code Playgroud)
如果你想在 0 年之前解析,你可以使用
Year.parse("-0001");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |