繁体   English   中英

SimpleDateFormat在jdk1.4上返回错误的日期

[英]SimpleDateFormat returns incorrect date on jdk1.4

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?

尝试传递与您指定的日期格式相对应的“ 20110731”。

只是猜测,Java 1.4有一个错误 ,用于忽​​略setLenient(false)设置。
Java 1.5没有此错误,并且由于一年中没有20个月无法解析您的输入,而是返回null。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM