Что ж, лучшее, что вы можете сделать, это собрать кучу SimpleDateFormat
экземпляров и проверить, может ли каждый из них проанализировать ваш вход. Если это возможно, то верните его. Как то так:
private List<DateFormat> acceptedFormats = Arrays.asList(
new SimpleDateFormat("dd/MMM/yyyy"),
new SimpleDateFormat("MMM/dd/yyyy"));
public List<DateFormat> getFirstFormatForDate(String date) {
for ( DateFormat fmt : acceptedFormats ) {
try {
fmt.parse(date);
return fmt;
} catch (ParseException e) {
}
}
return null;
}
В мире нет кода, который бы указывал, намеревается ли пользователь 01/02/2012
означать 2 января или 1 февраля.