我正在使用以下代码对文本输入的数据类型是否为日期进行分类:
private boolean isDate(String val)
{
//These are the only formats dates will have
String[] formatList = {"MM/dd/yyyy", "MM-dd-yyyy", "MMM/dd/yyyy", "dd-MMM-yyyy"};
SimpleDateFormat dateFormat = new SimpleDateFormat();
dateFormat.setLenient(false);
dateFormat.
//Loop through formats in formatList, and if one matches the string return true
for (String str:formatList)
{
try
{
dateFormat.applyPattern(str);
dateFormat.parse(val.trim());
} catch (ParseException pe)
{
continue;
}
return true;
}
return false;
}
在switch语句中,连同isNumber,isDatetime,isVarchar2等其他函数一起调用此方法。当我传递值“ 4/05/2013 23:54”(即日期时间)时,SimpleDateFormat对象成功解析了该方法。我认为这是因为它执行了正则表达式匹配。这意味着我必须在isDatetime之后调用isDate,否则将不会被归类为日期时间。是否有一种简单的方法来使SimpleDateFormat严格匹配(即,在有多余字符时阻塞)?
明月笑刀无情
相关分类