2012-12-27 93 views
33

我希望以毫秒爲單位的當前時間,然後以12小時的格式存儲它,但使用這段代碼我可以獲得24小時格式化時間。SimpleDateFormat返回24小時日期:如何獲得12小時日期?

long timeInMillis = System.currentTimeMillis(); 
Calendar cal1 = Calendar.getInstance(); 
cal1.setTimeInMillis(timeInMillis); 
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy HH:mm:ss a"); 
dateforrow = dateFormat.format(cal1.getTime()); 

有人可以建議修改以獲得所需的結果嗎?

+4

(第一名看起來是API此外,試圖更好地總結在標題的問題:。它使一個很大的第一印象) – 2012-12-27 10:28:06

回答

103

變化HHhh作爲

long timeInMillis = System.currentTimeMillis(); 
Calendar cal1 = Calendar.getInstance(); 
cal1.setTimeInMillis(timeInMillis); 
SimpleDateFormat dateFormat = new SimpleDateFormat(
           "dd/MM/yyyy hh:mm:ss a"); 
dateforrow = dateFormat.format(cal1.getTime()); 

注意dd/mm/yyyy - 會給你分鐘代替個月

0
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a"); 

使用hh代替HH

29

參考SimpleDataFormat JavaDoc

Letter | Date or Time Component | Presentation | Examples 
--------------------------------------------------------- 
    H | Hour in day (0-23) | Number | 0 
    h | Hour in am/pm (1-12) | Number | 12 
+0

私人字符串getCurrentTimeStamp( ){ SimpleDateFormat timestamp = new SimpleDateFormat(「yyyyMMddHHmmss」); return timestamp.format(new Date()); }。 這將給你的24小時fomrat .....在yyyyMMddhhmmss的情況下將返回12小時的格式。 – PrinceMidha

4

您好我測試下面的代碼工作得很好:

long timeInMillis = System.currentTimeMillis(); 
    Calendar cal1 = Calendar.getInstance(); 
    cal1.setTimeInMillis(timeInMillis); 
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a"); 
    dateFormat.format(cal1.getTime()); 
3

沒錯證實,單純用......而不是HH修復了我的問題。

從此改變:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa"); 

要這樣:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa"); 

你仍然可以使用HH存儲時間,如果你不想打擾存儲和處理的AM/PM 。然後當你檢索它時,使用hh。

-1

見下面的代碼示例:在硬盤的方式

SimpleDateFormat df = new SimpleDateFormat("hh:mm"); 
String formattedDate = df.format(new Date()); 
out.println(formattedDate); 
4

我重遇這一點。 H對h,24小時對12小時!

1

,您可以嘗試這樣

Calendar c= Calendar.getInstance(); 

    SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a"); 
    String str=sdf.format(c.getTime()); 
相關問題