String format = "yyyyMMdd";
SimpleDateFormat formatter = getSimpleDateFormat(format);
formatter.setLenient(false);
Date date = formatter.parse("07312011",new ParsePosition(0));
System.out.println(date);
这在jdk1.4上给出了“2500-01-01 00:00:00”,这是不正确的,并在jdk1.5上返回null
为什么在jdk1.4上给出“2500-01-01 00:00:00”? 如果它无法解析日期,它是否默认为此日期?
更新:
我知道如果我使用20110731就可以了......但是如果我通过07312011,它会在1.4中给出一些随机日期,在1.5中为null所以,我的问题是
在1.4中,如果传递的日期与格式不对应,是否默认为2500-01-01?
为什么它在1.5上返回null?
答案 0 :(得分:1)
尝试传递“20110731”,它对应于您指定的日期格式。
答案 1 :(得分:1)
只有一个gues,java 1.4有一个bug,用于忽略setLenient(false)设置。
Java 1.5没有此错误,因为一年中没有20个月无法解析您的输入并返回null。