是的,另一个Java Date帖子:)
我的问题:
简单的标准代码,如果插入的日期是请求的形式(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 = parse(ok)
问题:
strDate =“2012/12/15”----> sysout =我期待错误的日期 结果解析如“Tue Jun 03 00:00:00 CET 21”
谁知道???
答案 0 :(得分:9)
只需将setLenient设置为 false 即可。
FROM API:
指定日期/时间解析是否宽松。同 宽松解析,解析器可以使用启发式来解释输入 与该对象的格式不完全匹配。通过严格的解析, 输入必须与此对象的格式匹配。
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
sdf.setLenient(false);
System.out.println(sdf.parse("2012/12/15"));
} catch(ParseException e) {
e.printStackTrace();
}