2012-12-27 92 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()); 
相关问题