¿Cómo hacer que DateFormat adivine el siglo previsto?

Estoy tratando de analizar unString en formato "dd-MM-yy" a unDate objeto. El problema es que trata de adivinar el siglo para la fecha.

Cuando se especifica de 01 a 31, el año se interpreta como 2000s (siglo XXI) y 32 t0 99 se considera 1900s (siglo 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) {
}

¿Alguien puede ayudarme? ¿Cómo puedo especificar que solo estoy trabajando bien en el siglo XXI? No estoy tratando exactamente de buscar trucos como manipular la cadena o cambiar la fecha según la condición.

Respuestas a la pregunta(2)

Su respuesta a la pregunta