使 SimpleDateFormat.parse() 在无效日期(例如,month 大于 12)时失败
我用来解析格式的字符串。java.text.SimpleDateFormat
"yyyyMMdd"
如果我尝试解析一个月份大于 12 的字符串,而不是失败,它会滚动到下一年。完全可运行的重现:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ParseDateTest {
public static void main(String[] args) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date result = format.parse("20091504"); // <- should not be a valid date!
System.out.println(result); // prints Thu Mar 04 00:00:00 CST 2010
}
}
我宁愿被扔掉。ParseException
有没有非黑客的方式来强制异常发生?我的意思是,我不想手动检查月份是否大于12。这有点荒谬。
感谢您的任何建议。
注意:我已经知道Joda Time,但我需要在普通的JDK中完成此操作,而无需外部库。