Date d = DateUtils.parseDate("201809011", new String[]{"yyyyMMdd".intern()});
Date d = DateUtils.parseDate("20180940", new String[]{"yyyyMMdd".intern()});
以上的转化并不会抛出异常
DateUtils.parseDateStrictly 可以应对第二种情况,但是对于第一种情况仍然不能抛出异常
public class DateUtil {
public static final String[] PATTERNS = new String[] { "yyyyMMdd" };
/**
* islegal:判断日期字符串是否合法 <br/>
* 合法返回true,不合法返回false.<br/>
*
* @param dateStr
* a String
* @return boolean value <br/>
*/
public static boolean islegal(String dateStr) {
if (Strings.isNullOrEmpty(dateStr)) {
return false;
}
if (dateStr.length() != 8) {
return false;
}
try {
DateUtils.parseDateStrictly(dateStr, PATTERNS);
} catch (Exception e) {
return false;
}
return true;
}
}