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

时间:2018-04-08 16:36:56

标签: java datetime minute java.util.calendar

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

docs说它应该将当前分钟值作为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

5 个答案:

答案 0 :(得分:3)

Calendar.MINUTE只是一个常数:

public final static int MINUTE = 12;

如果您有Calendar的实例,则可以将分钟设为calendar.get(Calendar.MINUTE)

答案 1 :(得分:1)

您没有指定日期格式中指定秒数的分钟数。

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

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

original provided code

答案 2 :(得分:0)

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

答案 3 :(得分:0)

使用Calendar.get(Calendar.MINUTE)代替

答案 4 :(得分:0)

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

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

calendar.get(Calendar.MINUTE)