2013-11-20 50 views
-2

我在嘗試格式化已創建的時間字符串時遇到了一些問題,我正在嘗試僅使用日期和時間轉換字符輸出HH:mm格式的時間在此website用SimpleDateFormat顯示HH:MM

DateFormat time = new SimpleDateFormat("HH:mm R"); 

我沒有得到任何的問題,而在「R」,但接着將其輸出的整個日期和時間,擊敗我的目標。

+5

什麼是R?你爲什麼使用R? –

回答

0

嗯,Rnot documented to mean anything但文檔清晰地說,所有其他格式化字符「......從‘A’到‘Z’和‘a’到‘Z’被保留......」,所有如果您在格式化字符串中使用R,則您將會得到什麼結果。

刪除R。如果您的目標是在字符串末尾有R,請將其附加到結果中。如果沒有,請查閱文檔以查看您應該使用的格式化字符。

0

SimpleDateFormat在javadoc中沒有「R」 - 它表示所有未指定的字母都是保留的。我不知道你的網站在哪裏得到它...

0

根據date/time formatting symbols for SimpleDateFormat,沒有"R"。實際上,我得到一個IllegalArgumentException嘗試使用"R"。您可以使用DateFormat time = new SimpleDateFormat("HH:mm R");

但是,printf recognizes a different set of symbols格式化日期,並"R"定義有:

'R' Time formatted for the 24-hour clock as "%tH:%tM" 

你參考的網站也提到"R" - 下printf部分,而不是SimpleDateFormat。它提到在所有日期/時間格式符號前加上t

嘗試

System.out.printf("%tR", new Date()); 
0

你不需要 'R'。如果你想要24小時的「軍事」時間,只需要使用大寫'HH'並完成它。刪除R,你應該得到你想要的。如果你不這樣做,你可能在你的代碼中做了一些你沒有發佈的錯誤。