// 如果日期不合法,则抛异常
try {
String date_str = "5555-22-33";
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
format.setLenient(false);
Date date = format.parse(date_str);
} catch (Exception ex){
ex.printStackTrace();
System.out.println("日期不合法");
}
JDK 中的注释说明:
/**
* Specify whether or not date/time parsing is to be lenient. With
* lenient parsing, the parser may use heuristics to interpret inputs that
* do not precisely match this object's format. With strict parsing,
* inputs must match this object's format.
*
* <p>This method is equivalent to the following call.
* <blockquote><pre>
* getCalendar().setLenient(lenient)
* </pre></blockquote>
*
* <p>This leniency value is overwritten by a call to {@link
* #setCalendar(java.util.Calendar) setCalendar()}.
*
* @param lenient when {@code true}, parsing is lenient
* @see java.util.Calendar#setLenient(boolean)
*/
public void setLenient(boolean lenient)
{
calendar.setLenient(lenient);
}