请考虑以下代码片段
public class Test1 {
public static void main(String[] args) throws ParseException, java.text.ParseException {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
f.setLenient(false);
String dateStr = "2008-01-23 00:00:00.0";
Date date=f.parse(dateStr);
System.out.println(date);
}
}
这在 Java 1.6 中工作正常,并提供输出 星期三 1月 23 00:00:00 IST 2008
在java 1.7的情况下,它给出了异常
Exception in thread "main" java.text.ParseException: Unparseable date: "2008-01-23 00:00:00.0"
at java.text.DateFormat.parse(DateFormat.java:357)
我认为 JAVA 1.7 行为是正确的,因为 00:00:00.0 不属于 hh:mm:ss 格式(1-12 小时格式)
我的假设是否正确,即 1.6 有错误并在 1.7 中得到纠正?
是的,这种行为在Java 7中发生了变化。错误修复文档可以在 Oracle 网站上找到。错误 ID 是 JDK-4396385。