Java 1.7 中 SimpleDateFormat 中的行为更改



请考虑以下代码片段

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。

相关内容

  • 没有找到相关文章

最新更新