Для синтаксического анализа с сокращенным шаблоном года ( "y" или "yy" ) SimpleDateFormat должен интерпретировать сокращенный год относительно некоторого века. Это делается путем корректировки дат в течение 80 лет до и 20 лет с момента создания экземпляра SimpleDateFormat. Например, используя шаблон "MM/dd/yy" и экземпляр SimpleDateFormat, созданный 1 января 1997 года, строка "01/11/12" будет интерпретирована как 11 января 2012 года, а строка "05/04/64" будет интерпретироваться как 4 мая 1964 года.
Метод SimpleDateFormat.set2DigitYearStart(Date) можно использовать для фиксации года.
Ответ 2
Если я понимаю ваш вопрос, то да,
SimpleDateFormat sdf = new SimpleDateFormat("yy/MM/dd", Locale.US);
Calendar cal = Calendar.getInstance(Locale.US);
cal.set(1900, 0, 1);
sdf.set2DigitYearStart(cal.getTime());
System.out.println(sdf.parse("16/07/23"));
Устанавливает 100-летний период, состоящий из двухзначных лет, будет интерпретироваться как начинающийся с даты, указанной пользователем.
Ответ 3
Для этого может использоваться метод set2DigitYearStart. Он позволяет указать дату начала. Синтаксическая дата будет находиться в интервале [дата начала, дата начала + 100 лет].
Подробнее см. .
Ответ 4
Возможно, вы ищете это.
Calendar cal = Calendar.getInstance();
cal.set( Calendar.YEAR, 1900 );
SimpleDateFormat format = new SimpleDateFormat( "yy/MM/dd", Locale.US );
format.set2DigitYearStart( cal.getTime() );
System.out.println( format.parse( "16/07/23" ) );