【问题标题】:Calendar minute not giving the right minute日历分钟没有给出正确的分钟
【发布时间】:2018-09-18 02:21:45
【问题描述】:

下面的代码显示了解析的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

【问题讨论】:

标签: java datetime minute java.util.calendar


【解决方案1】:

Calendar.MINUTE 只是一个常量:

public final static int MINUTE = 12;

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 与报告的问题无关。
    • @lexicore 肯定是这样......如果他想弄清楚为什么他的分钟在两种访问时间的方法中不同,那么在他的格式中指定分钟是先决条件。
    • 这是上传前的最后一分钟错误,结果如问题中所述,只是显示不正确,现在更新。
    • 我回复了您提供的信息。首先跳出来的是语法错误。
    • @me_ OP 打印Calendar.MINUTE 常量,因此“意外”结果与日期/时间格式无关,这是一个更简单的错误。请检查所有指出的其他答案。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      改用Calendar.get(Calendar.MINUTE)

      【讨论】:

        【解决方案5】:

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

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

        calendar.get(Calendar.MINUTE)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-24
          • 1970-01-01
          • 1970-01-01
          • 2018-03-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多