2

我试图从朱利安日期得到日、月和年。

    String date = "13136";//Julian date
    Date convertedDate = new SimpleDateFormat("yyDDD").parse(date);
    System.out.println(convertedDate);

它打印

Thu May 16 00:00:00 BST 2013

哪个是对的。

现在我想从中获取 Day , Month 和 Year

  Calendar cal = Calendar.getInstance();
  cal.setTime(convertedDate);
  System.out.println(cal.get(Calendar.MONTH));


It prints 4 .

它应该打印 5 而不是 4 。为什么打印不正确?我在这里做错了什么?

4

3 回答 3

3

根据的javadoc Calendar.MONTH

get 和 set 的字段编号,指示月份。这是特定于日历的值。公历和儒略历中的第一个月是 JANUARY,即 0;最后一个取决于一年中的月数。

因此,几个月从零开始,因此您的输出4是正确的,对于代码中的一般用例,1除非您再次将此值用作MONTH值,否则添加到它是安全的Calendar

于 2013-05-16T12:05:08.757 回答
0

正如 javadocs 所述,月份从零开始:0 = 一月,1 = 二月,依此类推。

于 2013-05-16T12:06:34.307 回答
0
于 2017-03-20T02:57:38.320 回答