在解析之前确定字符串是否为有效日期
我有这种情况,我正在阅读大约130K条记录,其中包含存储为字符串字段的日期。有些记录包含空格(null),有些包含这样的字符串:'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类来处理不同的格式,然后创建一个工厂来选择正确的6,但是,我如何确定哪一个?
谢谢。