2012-10-28 74 views
0

我正在開發一個使用Eclipse和Android版本作爲API-15(ICS)的Android應用程序。Java/Android:有奇怪的日期分析問題

我有一個奇怪的問題,解析字符串到日期對象。這是我的代碼:

DateFormat df = new SimpleDateFormat("M/d/yyyy h:mm:ss a"); 
df.setTimeZone(TimeZone.getTimeZone("gmt")); 
String st = "1/1/1990 12:00:00 AM"; 

try { 
    Date dt = df.parse(st); 
     return dt; 
    } catch (ParseException e) { 
     return null; 
    } 

它一直給出ParseException錯誤。我已經嘗試過各種日期字符串的組合,但仍然無法將其轉換爲日期對象。

另外我的字符串應該包含UTC中的日期和時間,所以要創建的新日期對象應該是UTC。

任何想法的人?

+0

我沒有得到任何異常。它爲我工作。 '1月1日05:30:00 IST 1990'是o/p –

+0

我在代碼中看不到任何問題。它應該工作。聽起來像你的設備本身的問題,而不是代碼。你有沒有試圖在模擬器上運行它?請提供有關您的項目的更多信息:JAVA,最小版本API .....併發布您的堆棧跟蹤。 –

回答

0

你會得到異常,因爲你解析的字符串與你格式化的格式不匹配,將日期格式更改爲如下所述。它總是推薦使用兩位數字的日期或時間格式。

DateFormat df = new SimpleDateFormat(「MM/dd/yyyy hh:mm:ss a」);

0

嘗試表示一個月中的某個日期和兩位數字「MM/dd/yyyy hh:mm:ss a」。我有這個代碼,它對我來說很好:

SimpleDateFormat dfm = new SimpleDateFormat("yyyy-MM-dd"); 

        try { 

         date=dfm.parse(datestring);; 
        } catch (ParseException e) { 

         e.printStackTrace(); 
        } 
0

我想我已經查明瞭這個問題。這是因爲進口混亂。我刪除了所有的導入,並使用Eclipse的組織導入功能。現在它不再給出錯誤。

我想知道之前導入的代碼是否被lint接受。我認爲Java和Android處理日期有兩個不同的庫。現在我只有日期的Java庫。工作正常。

對不起,麻煩人。