SimpleDateFormat返回24小时date:如何获得12小时date?
我需要毫秒的当前时间,然后以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());
有人可以build议修改,以获得预期的结果吗?
把HH
hh
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
– 会给你分钟而不是月份 。
引用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
您好我testing下面的代码工作正常:
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());
我也很难再遇到这个问题。 H对H,24小时对12小时!
是的,证实简单地使用HH而不是HH修复了我的问题。
由此改变:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa");
对此:
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
如果您不想打扰存储和处理AM / PM,您仍然可以使用HH存储时间。 那么当你检索它时,使用hh。
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a");
用hh
代替HH
你可以试试这个
Calendar c= Calendar.getInstance(); SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a"); String str=sdf.format(c.getTime());
看下面的代码示例:
SimpleDateFormat df = new SimpleDateFormat("hh:mm"); String formattedDate = df.format(new Date()); out.println(formattedDate);