Java中的日历类

Anu*_*Jha 2 java calendar

我正在尝试HOUR_OF_DAY,Minute and Second使用Calendar Class 进行打印.我在我的代码中使用了以下命令.

  System.out.println(
      Calendar.HOUR+" "+
      Calendar.HOUR_OF_DAY+" "+
      Calendar.MINUTE+" "+
      Calendar.SECOND+" "
      );
Run Code Online (Sandbox Code Playgroud)

它给出如下输出:

10 11 12 13 
Run Code Online (Sandbox Code Playgroud)

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

我认为它将在24小时格式中打印当前小时.但我没有得到那个输出.

所以我想知道这个 HOUR_OF_DAY,HOUR应该打印什么.

请澄清.

Jon*_*eet 6

Calendar.HOUR,Calendar.HOUR_OF_DAY等只是常量用来标识的日期/时间方面.他们通常像这样使用:

Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
Run Code Online (Sandbox Code Playgroud)

我不能轻易想到你想要打印出常量本身的任何情况.

现在,即使您正在使用它,您仍然可以通过字符串连接将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());
Run Code Online (Sandbox Code Playgroud)

  • 我们真的需要一个"Beaten By Jon Skeet"徽章.你经常看到其他人抱怨在一分钟之内被殴打到相同的答案并且想"克服它",但是当它发生在你身上时,你只是觉得......我不知道,真的很业余,我猜测?仅供参考:我认为你在发布后大约40秒内回答了这个问题.这很激烈. (3认同)
  • @studro事实上,他回答了问题40秒_before_有人问......它只是花了这么长时间才出现在这里......或者可能是出于体育精神,他没有在网站上出现问题之前发布答案. (2认同)