Java 8 DateTimeFormatter を作成するようなパターンを使用する場合d/M/yy
(たとえば、DateTimeFormatter.ofPattern(pattern);
(これは書式設定ではなく解析にのみ使用します) を使用すると、2 文字の年はすべて 20xx として13/5/99
解釈されます2099-05-13
。私の場合は間違っています (1999 年になるはずでした)。
私のアプリケーションでは、OCR されたドキュメントから日付を解析しようとしていますが、これはたとえば 90 年代のものである可能性があるため、古い SimpleDateFormat の動作を使用して、日付を現在の日付より 80 年前から 20 年以内に解釈します。私はかなりよく。しかし、さまざまな理由から、日付解析ロジック全体を新しい Java 8 DateTimeFormatters に切り替えようとしています。
Java ソース コードを調べると、これはすべて定数に対して相対的に解釈されることReducedPrinterParser.BASE_DATE
がわかりますが、パターンから独自のフォーマッタを構築するときに使用される値を変更する方法がわかりません。これは単に不可能ですか、それとも 2 文字の年を解析するための動作を指定する可能性を逃したのでしょうか?