SimpleDateFormat
似乎在找到匹配模式后忽略匹配字符串中的字符串。
例如:模式"yyyyMMddHHmm"
匹配201601251531oi
,我认为它不应该匹配。但是这个20160125153133
失败了,这是完全正确的。
我尝试将setLenient
作为true
并且没有效果。我知道我们可以添加另一个数字位数检查(正则表达式),但有没有办法严格使这个模式仅使用 SimpleDateFormat
?
public static boolean isValidDateTimeFormat(String anyString,
String dateTimePattern) {
// here the pattern is 'yyyyMMddHHmm'
SimpleDateFormat datePattern = new SimpleDateFormat(dateTimePattern);
datePattern.setLenient(false); // no difference
try {
datePattern.parse(anyString);
return true;
}
catch (Exception pe){
return false;
}
}
答案 0 :(得分:0)
不,正如@ControlAltDel在评论中所述,SimpleDateFormat不会以这种方式工作。您需要: