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议修改,以获得预期的结果吗?

8 Solutions collect form web for “SimpleDateFormat返回24小时date:如何获得12小时date?”

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); 
  • Javadate分析,精度为微秒或纳秒
  • SimpleDateFormatparsing时忽略月份
  • 如何在Java中使用DateFormatparsing月份完整的表单string?
  • Java SimpleDateFormat(“yyyy-MM-dd'T'HH:mm:ss'Z”)给出时区为IST
  • 在SimpleDateFormat模式string中使用字母字符
  • 如何在Android中获取当前date?
  • 为什么Java的SimpleDateFormat不是线程安全的?
  • 我如何利用SimpleDateFormat日历?
  • Java - parsingdate
  • Y返回2012,而y在SimpleDateFormat中返回2011
  • 你如何在Java中设置“11th”,“21st”或“23rd”的月份? (有序指标)