У меня такая ситуация, когда я читаю около 130 тыс. записей, содержащих даты, хранящиеся в виде строковых полей. Некоторые записи содержат пробелы (nulls), некоторые содержат строки типа: "dd-MMM-yy", а некоторые содержат "dd/MM/yyyy".
Я написал такой метод:
public Date parsedate(String date){
if(date !== null){
try{
1. create a SimpleDateFormat object using 'dd-MMM-yy' as the pattern
2. parse the date
3. return the parsed date
}catch(ParseException e){
try{
1. create a SimpleDateFormat object using 'dd/MM/yyy' as the pattern
2. parse the date
3. return parsed date
}catch(ParseException e){
return null
}
}
}else{
return null
}
}
Итак, вы, возможно, уже заметили проблему. Я использую try.. catch как часть моей логики. Было бы лучше, если бы я мог заранее определить, что строка фактически содержит синтаксическую дату в некотором формате, а затем пытается ее проанализировать.
Итак, есть ли какой-то API или библиотека, которые могут помочь с этим? Я не против писать несколько разных классов Parse для обработки разных форматов, а затем создавать factory для выбора правильного6, но как определить, какой из них?
Спасибо.