SimpleDateFormat返回24小时日期:如何获得12小时的约会?

ane*_*ela 46 java android simpledateformat

我想要以毫秒为单位的当前时间然后以12小时格式存储它,但是使用这段代码我得到24小时格式时间.

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());
Run Code Online (Sandbox Code Playgroud)

任何人都可以提出修改以获得理想的结果?

Mys*_*icϡ 131

更改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());
Run Code Online (Sandbox Code Playgroud)

请注意dd/mm/yyyy- 将为您提供分钟而不是月份.

  • @DiegoRamos 适用于上午或下午 (2认同)

Eng*_*uad 42

参考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
Run Code Online (Sandbox Code Playgroud)


小智 5

是的,确认只是使用"hh"而不是"HH"解决我的问题,因为"hh"适用于 12 小时格式和"HH"适用于 24 小时格式。

从这里改变:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa");
Run Code Online (Sandbox Code Playgroud)

对此:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
Run Code Online (Sandbox Code Playgroud)

"HH"如果您不想费心存储和处理 AM/PM,您仍然可以使用来存储时间。然后当你检索它时,使用"hh".


lwp*_*ro2 5

我也是以艰难的方式重新遇到这个问题.H vs h,24小时vs 12小时!