在Java中将String解析为Date时出错

Sal*_*dro 6 java parsing date

是的,另一个Java Date帖子:)

我的问题:

简单的标准代码,用于测试插入日期是否为请求的形式(dd/MM/yyyy):

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {

   sdf.parse(strDate); 

} catch(ParseException e) {

   // err

}
Run Code Online (Sandbox Code Playgroud)

strDate ="10-12-2012"----> sysout = err(ok)

strDate ="2012-11-10"----> sysout = err(ok)

strDate ="15/10/2011"----> sysout = parse(ok)

问题:

strDate ="2012/12/15"----> sysout =这个日期,我希望解析的错误结果如"Tue Jun 03 00:00:00 CET 21"

谁知道???

Per*_*ror 9

只需将setLenient设置为false即可.

FROM API:

setLenient方法:

指定日期/时间解析是否宽松.通过宽松的解析,解析器可以使用启发式来解释与该对象的格式不完全匹配的输入.通过严格的解析,输入必须与此对象的格式匹配.

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
  sdf.setLenient(false);
  System.out.println(sdf.parse("2012/12/15")); 
} catch(ParseException e) {
  e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)