让我们看一下下面的Java代码片段。
package demo;
import java.util.Calendar;
final public class Main
{
public static void main(String[] args)
{
Calendar cal = Calendar.getInstance();
cal.set(2011, 11, 11); //Setting a date to itself.
System.out.println(cal.get(Calendar.YEAR) + " "
+ cal.get(Calendar.WEEK_OF_YEAR) + "
" + cal.get(Calendar.DAY_OF_YEAR));
}
}
在上面的简单代码中,我使用方法
cal.set(2011, 11, 11);
临时(明确地)将当前日期设置为2011-11-11。因此,我得到了输出2011 51 345,当前年份2011,年份51的星期和日期345的日期。当我在
cal.set(2011, 11, 11);
这一行上留下评论时,得到的结果分别为:当年2011 46 315,当年当前周和当年当前日,与先前的结果有所不同。[这里,我没有设定任何日期。上面代码中的语句
cal.set(2011, 11, 11);
已被注释掉,系统自动检索当前日期为2011-11-11]。在这两种情况下,都使用相同的日期,即2011-11-11,但两种情况下获得的结果均不同。为什么?
最佳答案
月份值从0开始。如果您的意思是十一月,请使用:
cal.set(2011, 10, 11);
请参见Calendar javadocs。
关于java - 关于Java日历的一种情况,其中显式设置日期会导致一些不同的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8098298/