0

下面的代码显示了解析Date对象的文本和静态字段 Calendar.MINUTE。有人可以告诉他们为什么不同吗?

文档说它应该以 int 形式获取当前分钟值。

编辑:图像已删除,代码/结果已更新。

public class Testerson {

  public void print()
  {
      SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm");
      System.out.println("Date time = " + sdf.format(new Date()));
      System.out.println("Calendar Minute = " + Calendar.MINUTE);
  }

  public static void main(String[] args) throws ParseException
  {
      Testerson test = new Testerson();
      test.print();
  }
}

输出为;

Date time = 08/04/2018 05:49
Calendar Minute = 12
4

5 回答 5

3

Calendar.MINUTE只是一个常数:

public final static int MINUTE = 12;

如果您有一个实例,Calendar您可以将分钟作为calendar.get(Calendar.MINUTE).

于 2018-04-08T16:40:41.420 回答
1

您没有在日期格式中指定秒数。

你的日期时间是“dd/MM/yyyy hh:ss”它应该是“dd/MM/yyyy HH:mm”

原始问题:https ://stackoverflow.com/posts/49720176/revisions

原始提供的代码

于 2018-04-08T16:44:20.583 回答
0

Calendar.MINUTE是一个常数 ( static final)。因为它是一个常数,所以它不可能给你当前的分钟,因为它应该每时每刻都改变它的值。因此,您的理解是错误的。

文档说这是获取和设置 Minute of hour 的字段编号。您需要使用它从日历实例中提取分钟值,如下所示:

calendar.get(Calendar.MINUTE)
于 2018-04-08T16:52:36.490 回答
0

Calendar 有一个名为 MINUTE 的静态常量字段。你正在打印那个常数!该值与该日期对象无关。

于 2018-04-08T16:39:40.127 回答
0

Calendar.get(Calendar.MINUTE)改为使用

于 2018-04-08T16:41:45.260 回答