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

标签 java calendar

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

我明白如果 HOUR 打印 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 ???????

最佳答案

你必须在你的模式中使用大写的 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

关于java - 解析 12 :00 时日历 HOUR_OF_DAY 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26211691/

相关文章:

java - 无法在 Firebase 上初始化类 FirebaseThreadManagers 错误

java - struts2应用程序中使用复选框删除

java - 线程何时超出范围?

java - 如何在java中将日期设置为输入?

google-api - Google 日历 watch 以获取事件更新

Java 获取给定日期的下个月的第一天

java - 使用 ASM 跟踪字节码中的方法调用参数

Java正则表达式提取和替换值

jsf - 在 p :calendar 上禁用特定日期

java - Android:如何计算几天前的日期?