2

我正在尝试HOUR_OF_DAY,Minute and Second使用日历类进行打印。我在代码中使用了以下命令。

  System.out.println(
      Calendar.HOUR+" "+
      Calendar.HOUR_OF_DAY+" "+
      Calendar.MINUTE+" "+
      Calendar.SECOND+" "
      );

它给出如下输出:

10 11 12 13 

即使我跑了这几个小时,它也给出了相同的输出。

我认为它会以 24 小时格式打印当前时间。但我没有得到那个输出。

所以我想知道这个 HOUR_OF_DAYHOUR应该打印什么。

请说清楚。

4

6 回答 6

6

Calendar.HOURCalendar.HOUR_OF_DAY只是用于识别日期/时间方面的常量。它们通常这样使用:

Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);

我无法轻易想到您想要打印出常量本身的任何情况。

现在,即使您使用它,您仍然会通过字符串连接将int值转换为String值 - 这不知道您想要什么格式,因为您没有明确指定它。没有“2位格式int”之类的东西……int只是一个数字。

您应该研究DateFormatSimpleDateFormat- 这是使用标准 Java 类库格式化日期和时间的首选方式。(我个人鼓励您将Joda Time视为一个更好的日期/时间 API,但那是另一回事。)

例如:

DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
// Prints the current time using 24-hour format
System.out.println(formatter.format(new Date());
于 2013-10-03T07:49:17.543 回答
3

尝试这个

Calendar cal = Calendar.getInstance();

System.out.println(
  cal.get(Calendar.HOUR)+" "+
  cal.get(Calendar.HOUR_OF_DAY)+" "+
  cal.get(Calendar.MINUTE)+" "+
  cal.get(Calendar.SECOND)+" "
  );
于 2013-10-03T07:51:51.970 回答
2

您所做的是打印日历常量的值。

使用创建日历实例Calendar cal = Calendar.getInstance();(这将创建具有默认时区和默认语言环境的当前时间和日期的日历实例)

您可以打印HOUR_OF_DAY, HOURusing的值cal.get(Calendar.HOUR_OF_DAY)cal.get(Calendar.HOUR)

于 2013-10-03T07:50:47.437 回答
0

Calendar.HOUR、Calendar.HOUR_OF_DAY、Calendar.MINUTE 和 Calendar.SECOND 是用于访问 Calendar 对象中的字段的常量。您需要先创建一个 Calendar 对象,然后使用这些常量通过 get() 方法访问其字段。

尝试java.util.Calendar以获取更多信息。

我被 Jon Skeet 打败了——他的回答非常完美,是一个很好的起点。

于 2013-10-03T07:52:46.750 回答
0

看看 GregorianCalender ( http://docs.oracle.com/javase/7/docs/api/java/util/GregorianCalendar.html )。这可能是您正在寻找的。

于 2013-10-03T07:49:30.150 回答
0
于 2018-04-23T05:23:49.757 回答