任何人都可以告诉我以下解决方案: 我在java中有一个Util.Date对象。我想验证输入的日期。我正在使用所需的格式解析日期对象。
例如,格式为“MM / dd / yyyy”,输入日期为“23/12/2010” 对于这个日期,我没有得到任何Parse异常,但日期调整为“11/12/2011”,这不应该发生在我的情况下。相反,我想抛出错误信息。
请尽快帮助我。
提前致谢
答案 0 :(得分:4)
在DateFormat类中,你必须重置“lenient”标志,即
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
sdf.setLenient(false);
. . .
sdf.parse(mydate, pos);
答案 1 :(得分:4)
您必须将SimpleDateFormat的“宽松”模式设置为false:
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
sdf.setLenient(false);
默认情况下,它可以容忍某些错误,并尝试以某种方式解释它们。
答案 2 :(得分:1)
根据您的格式表达式,我们可以使用SimpleDateFormat调整月份,日期和年份,代码低于
public class SimpleDateFormatString2DateParse {
public static void main(String[] args) {
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
try {
Date date = formatter.parse("11/12/2011");
System.out.println("Date is : " + date);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- - - - - - - - 输出
日期是:2011年11月12日星期六00:00:00太平洋标准时间