如何解析Java 8/JSR 310/threeten.org backport中的2位数年份?

Mic*_*ard 5 java datetime 2-digit-year java-8 java-time

这个问题涉及在Java 8/JSR 310/threeten.org backport中解析2位数年份.两位数的年份是一个不幸的事实,需要处理.

我只关心ISO日历.默认情况下,JSR 310假定2000年的"基准年"为2位数年份.

我看到对基准年的控制可以通过

DateTimeFormatterBuilder.appendValueReduced(...)
Run Code Online (Sandbox Code Playgroud)

格式模式提供了指定日期格式的便捷机制

dd-MMM-yy
M/d/yy
d/M/yy
Run Code Online (Sandbox Code Playgroud)

在应用格式模式后,我没有看到为两位数年份应用"基准年"的机制.

Joda-time DateTimeFormatter.withPivotYear(int pivotYear)作为解决这个问题的机制.

  • 在JSR 310中,是否有一种机制可以在指定模式后为2位数年份应用基数?

  • 解析基准年可能不是2000年的2位数年份的最佳做法建议是什么?