如果我使用像d/M/yy
这样的模式创建Java 8 DateTimeFormatter(例如使用DateTimeFormatter.ofPattern(pattern);
(我将只用于解析,而不是格式化),它会将所有双字母年解释为20xx,例如解析字符串如13/5/99
被解释为2099-05-13
,在我的情况是错误的(它的意思是在1999年)如何使用Java 8 DateTimeFormatter更改解析两个字母年份的基准日期?
在我的应用程序中,我试图解析OCR文件的日期,这可能来自例如90年代,所以将旧的SimpleDateFormat行为解释为在当前日期之前80年和之后20年之内的日期非常适合我,但由于各种原因,我仍然希望将整个日期解析逻辑切换到新的Java 8 DateTimeFormatters。
翻阅Java源代码,我发现这是所有相对于常量ReducedPrinterParser.BASE_DATE
的解释,但我无法更改从模式构建自己的格式化程序时使用的值。这是不是可能,或者我错过了指定解析两个字母年的行为的可能性?
[解析字符串的可能的复制本地日期不使用所需的世纪](http://stackoverflow.com/questions/29490893/parsing-string-to-local-date-doesnt-use-desired-century) –