解析12:00时,日历HOUR_OF_DAY返回0

时间:2014-10-06 07:34:10

标签: java calendar

我很惊讶为什么日历HOUR_OF_DAY在下面的示例中打印0,当我解析2014-10-06 12:00:00时。

我明白,如果我打印0,但不应该HOUR_OF_DAY打印12?

  String dateString = "2014-10-06 12:00:00";

  Calendar cal = Calendar.getInstance();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

  try
  {
     cal.setTime(sdf.parse(dateString));
  }catch(Exception e)
  {}

  System.out.print(cal.get(Calendar.HOUR_OF_DAY)); // Print 0 ???????

1 个答案:

答案 0 :(得分:6)

您必须在模式中使用大写H

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

由于:

h is Hour in am/pm (1-12) 
H Hour in day (0-23) 

有关详细信息,请参阅the documentation of SimpleDateFormat