java 1.7中的SimpleDateFormat中的行为更改?

时间:2014-03-29 04:09:09

标签: java date datetime

请考虑以下代码段

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中工作正常并且输出 Wed Jan 23 00:00:00 IST 2008

对于java 1.7,它给出了Exception

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有bug并在1.7中得到纠正

1 个答案:

答案 0 :(得分:0)

是的,Java 7中的这种行为已经改变。可以在Oracle website上找到错误修正文档。 bug-id是JDK-4396385。