2014-02-13 79 views
0
Calendar c = Calendar.getInstance(); 
String myDateString = (String) DateFormat.format("yyyy-MM-dd hh:mm", c.getTime()); 

dateTv.setText(myDateString); 

輸出是:日曆給-12小時回

2014年2月13日04:31

的時間其實不是04,這是16,我的意思是名詞之後,不是在午夜之後(凌晨4點),如果你知道我的意思。

爲什麼會發生這種情況,以及我如何解決它?

編輯:

對於可愛-1選民:

至於有人建議:

String myDateString = (String) DateFormat.format("yyyy-MM-dd HH:mm", c.getTime()); 

這個解決方案給了我這個確切的字符串:

2014-02- 13 HH:45

YE S.我的時間裏有2個'H'字符。它完全是一個H字符,而不是一個數字。

+0

你有沒有試過,以取代 「HH」 的 「KK」?檢查此:http://stackoverflow.com/a/7078488/2065418 –

+0

添加此作爲anwer,我會接受它。 –

+0

剛剛做到了。謝謝;) –

回答

2

嘗試更換 「HH」 的 「KK」 象下面這樣:

Calendar c = Calendar.getInstance(); 
String myDateString = (String) DateFormat.format("yyyy-MM-dd kk:mm", c.getTime()); 

dateTv.setText(myDateString); 

從這裏:https://stackoverflow.com/a/7078488/2065418

5

使用HH

hh是指小時,使用PM和AM的。其中不顯示

String myDateString = (String) DateFormat.format("yyyy-MM-dd HH:mm", c.getTime()); 

如在每天(0-23)

H =小時AM/PM(1-12)

Android documentation

H =小時

編輯:似乎有一種問題,H不支持API 17以下,所以它是最好使用kk這實際上是p羅珀HH執行。

Up to API level 17, only {@code adEhkMmszy} were supported. Note that this class incorrectly implements {@code k} as if it were {@code H} for backwards compatibility.

+0

我相信使用'aaa'會告訴你AM/PM在最後。 - '「yyyy-MM-dd hh:mm aaa」' – Doomsknight

+0

請參閱我的編輯請。 –

+0

@AdamVarhegyi我從你的評論中注意到'kk'正在工作,但'HH'沒有。如果你仔細閱讀我關聯的文檔,你會發現'kk'和'HH'幾乎是一回事,除了一個是0-23 vs 1-24。是否要將午夜顯示爲我假設的24:00或00:00。 「KK」與「hh」相同,略有不同。事實上,您在字符串中取得「HH」而不是正常工作。 ('HH'是標準,而不是'kk') – Doomsknight