2014-03-29 63 views
2

考慮下面的代碼片段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的罰款,並給出輸出週三年01月23日00:00:00北京時間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中得到糾正?

+0

你的假設是正確的,只是無法找到bug –

回答

0

是的,這種行爲已經隨Java 7發生了變化。錯誤修復文檔可以在Oracle website上找到。 bug-id是JDK-4396385。