Как изменить базовую дату для анализа двухбуквенных лет с помощью Java 8 DateTimeFormatter?

Если я использую шаблон какd/M/yy для создания Java 8 DateTimeFormatter (например, используяDateTimeFormatter.ofPattern(pattern); (который я буду использовать только для анализа, а не форматирования), он будет интерпретировать все двухбуквенные годы как 20xx, например, разбирать строку как13/5/99 быть интерпретированным как2099-05-13, что в моем случае неправильно (это должно было быть в 1999 году).

В моем приложении я пытаюсь проанализировать даты из документов OCR, которые могли бы, например, по-прежнему относится к 90-м годам, поэтому мне вполне подходит прежнее поведение SimpleDateFormat, заключающееся в интерпретации даты за 80 лет до и через 20 лет после текущей даты. Но по разным причинам я все еще пытаюсь переключить всю логику разбора даты на новые Java 8 DateTimeFormatters.

Просматривая исходный код Java, я вижу, что все это интерпретируется относительно константыReducedPrinterParser.BASE_DATE, но я не вижу способа изменить значение, используемое при построении моего собственного средства форматирования из шаблона. Это просто невозможно или я упустил возможность указать поведение для разбора двухбуквенных лет?

Ответы на вопрос(1)

Ваш ответ на вопрос