6

是的,另一个 Java 日期帖子 :)

我的问题:

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

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

   sdf.parse(strDate); 

} catch(ParseException e) {

   // err

}

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

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

strDate = "15/10/2011" ----> sysout = 解析(确定)

问题:

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

谁知道???

4

1 回答 1

10

只需将setLenient设置为false

来自 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();
}
于 2012-11-23T15:06:54.960 回答