2013-09-25 113 views
1

我有一個String這是2013-8-25, 16:33,現在我需要將它轉換爲Date。爲此我使用:SimpleDateFormat:解析後的小時數爲HH

Date mDate = new SimpleDateFormat("yyyy-MM-dd, HH:mm").parse("2013-8-25, 16:33"); 

然後,我需要得到適當的模式,這是

private static final String DATE_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; 

,這裏是一個String我如何做到這一點:

public static String convertDateToString(Date date) { 
     String string = DateFormat.format(DATE_PATTERN, date).toString(); 
     Logger.logVerbose(TAG, "Date converted into String is " + string); 
     return string; 
    } 

但是:

Date converted into String is 2013-08-25THH:33:00.SSSZ 

爲什麼選擇h我們還在HH?謝謝!

+1

什麼是格式?如果你能提供一個簡短的但完整的程序來證明問題,那真的很有幫助。 (請注意,解析部分應該是無關緊要的 - 只需使用'Date()'來創建一個格式化的日期樣本。) –

+0

對不起,我已更正了代碼段。 – Eugene

+1

這仍然是無效的代碼。 'DateFormat'上沒有靜態'format'方法。再次,請顯示一個簡短但完整的程序。我們應該能夠將它複製到一個新的文本文件中,編譯並運行它,而無需進一步更改。 (我的猜測是你的DATE_PATTERN字符串實際上不是這樣,但是直到你給了我們重現它的東西,我們才能知道。) –

回答

1

我強烈懷疑您遇到與DateFormat的兼容性問題。特別是,從文檔:

此類中的format方法實現Unicode UTS#35模式的子集。該類當前支持的子集包括以下格式字符:acdEHhLKkLMmsyz。直到API級別17,只支持adEhkMmszy。請注意,爲了向後兼容,此類不正確地實現k,就好像它是H一樣。

我建議你使用SimpleDateFormat進行格式化,以避免這個問題。