日历分钟没有给出正确的分钟

Calendar minute not giving the right minute

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

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

编辑:图像已删除,code/result已更新。

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

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

Calendar.MINUTE 只是一个常量:

public final static int MINUTE = 12;

如果您有 Calendar 的实例,您可以获得 calendar.get(Calendar.MINUTE) 的分钟。

改用Calendar.get(Calendar.MINUTE)

您没有指定分钟,您在日期格式中指定了秒。

你的约会时间是"dd/MM/yyyy hh:ss" 应该是 "dd/MM/yyyy HH:mm"

原题:https://whosebug.com/posts/49720176/revisions

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

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

calendar.get(Calendar.MINUTE)