执行下一段:
java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
fmt.setLenient(false);
System.out.println(fmt.parse("20000101132345"));
结果是:Sat Jan 01 13:23:45 CST 2000再执行下一段(注意:20000101132345-〉2000010113234):
java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
fmt.setLenient(false);
System.out.println(fmt.parse("2000010113234"));
结果是:Sat Jan 01 13:23:04 CST 2000按理来说执行第二段代码的时候应该抛出异常才对!要不然太不严格了!!!
就是说2000010113234和20000101132304执行结果是一样的!
你们觉得呢?
java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
fmt.setLenient(false);
System.out.println(fmt.parse("20000101132345"));
结果是:Sat Jan 01 13:23:45 CST 2000再执行下一段(注意:20000101132345-〉2000010113234):
java.text.SimpleDateFormat fmt = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
fmt.setLenient(false);
System.out.println(fmt.parse("2000010113234"));
结果是:Sat Jan 01 13:23:04 CST 2000按理来说执行第二段代码的时候应该抛出异常才对!要不然太不严格了!!!
就是说2000010113234和20000101132304执行结果是一样的!
你们觉得呢?
if (strDate.length() < 14) {
ParseException e = new ParseException(strDate, 0);
throw e;
}再判断长度
fmt.setLenient(false);
System.out.println(fmt.parse("2000-1-1 1:1:1"));这样处理还是比较合理的,上面的例子就可以
fmt.setLenient(false);
System.out.println(fmt.parse("2000-11-11 11:11:11"));
fmt.setLenient(false);
System.out.println(fmt.parse("2000010113234."));这是也返回:Sat Jan 01 13:23:04 CST 2000
这样一来判断长度也是没有用的!!!