Como fazer DateFormat adivinhar século pretendido?

Eu estou tentando analisar umString no formato "dd-MM-aa" para umDate objeto. O problema é que ele tenta adivinhar o século para a data.

Quando especificado de 01 a 31, o ano é interpretado como 2000 (século XXI) e 32 a 99 é considerado 1900 (século XX).

SimpleDateFormat fm =new SimpleDateFormat("dd-MM-yy");
String datestr="21-11-31";
try {
  Date date= fm.parse(datestr);
  System.out.println(date);
} catch (ParseException e) {
}

Alguém pode me ajudar? Como posso especificar que estou trabalhando apenas no século XXI perfeitamente? Eu não estou exatamente tentando procurar por truques como manipular a corda ou mudar a data com base na condição.

questionAnswers(2)

yourAnswerToTheQuestion