2011-11-24 61 views
0

我已經得到了下一個Java代碼:試圖弦號碼 「7」 轉換爲07:00格式的SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("kk:mm"); 
    Date rangoInicio = formatter.parse(filtroHorariosIda.get(0)); 

爲filtroHorariosIda.get值(0)是 「7」(報價包括因爲它是一個字符串)

問題是java的拋出異常

java.text.ParseException Unparseable date: "7" 

我一直在閱讀Java文檔,我認爲這是一個完美的解析操作。問題在哪裏?

謝謝。

回答

1

這是因爲你試圖解析「7」,並說它應該使用「kk:mm」格式。

嘗試此代替

Date rangoInicio = formatter.parse(filtroHorariosIda.get(0) + ":00"); 
2

我不太明白... kk:mm期望格式中的內容,以及kk:mm。你給它「7」。你不應該通過「7:21」而不是(在這種情況下是「7:00」)?

1

您的解析字符串需要包含「:」的輸入,其中包含 - :您的輸入不包含「:」,所以當然SimpleDateFormat當然不能解釋您的輸入。

如果您的輸入是「7:0」,它會正常工作。

1

爲了完整性的緣故,一個簡單的測試產生了以下結果:

public void testDateParse() 
{ 
    String probes[] = {"7","07:00","7:00","7:0",":"}; 

    for (String probe : probes) { 
     try 
     { 
     SimpleDateFormat formatter = new SimpleDateFormat("kk:mm"); 
     Date rangoInicio = formatter.parse(probe); 
     System.out.println(probe + " is parsable"); 
     } 
     catch(ParseException ex) 
     { 
      System.out.println(probe + " is not parsable"); 
     } 
    }  
} 

7爲不能分析

07:00是可解析

7:00可解析

7:0是可解析的

:爲不能分析