Распространенным решением при работе с несколькими входными форматами является проверка последовательности ожидаемых форматов в цикле до тех пор, пока один из них не будет успешным или все не завершится неудачей.Например,
public Date parseDate(List<DateFormat> formats, String text) {
for(DateFormat fmt : formats) {
try {
return fmt.parse(inputDate);
} catch (ParseException ex) {}
}
return null;
}
List<DateFormat> formats = Arrays.asList(new SimpleDateFormat("MM/dd/yyyy"));
Date d1 = parseDate(formats, "01/23/1983");
Date d2 = parseDate(formats, "1/23/1983");