在标题环境中尝试这个:
http://www.javadb.com/check-if-a-string-is-a-valid-date
但是,它没有以正确的方式工作。当dateFormat.parse(inDate.trim());被调用时,它不会引发错误,而是对日期加一。
例如,如果inDate.trim()是"2005-02-29",那么它会使解析像"2005-03-01"。
显然,我不会有这种行为。可以做什么?
在标题环境中尝试这个:
http://www.javadb.com/check-if-a-string-is-a-valid-date
但是,它没有以正确的方式工作。当dateFormat.parse(inDate.trim());被调用时,它不会引发错误,而是对日期加一。
例如,如果inDate.trim()是"2005-02-29",那么它会使解析像"2005-03-01"。
显然,我不会有这种行为。可以做什么?
2005年2月有28天。通过解析"2005-02-29",有一天的偏移量将日期变为 3 月 1 日。用于setLenient(false)防止解析器“调整”无效日期。
将 上的setLenient()方法设置SimpleDateFormat为 false 以在这种情况下抛出错误:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
System.out.println(sdf.parse("2005-02-29")); // This would throw parse exception.