public class TestCalendar
{
public static void main(String[] args) 
{
Calendar c = Calendar.getInstance();
//取出年
System.out.println(c.get(YEAR));
//取出月份
System.out.println(c.get(MONTH));
//取出日
System.out.println(c.get(DATE));
          }
}
现在日期是2009年10月23日,为何我运行结果是2009 09 23
我知道可能使用的是默认时区,但是默认时区是哪个时区,又是怎么计算的,麻烦知道的告诉小弟一下,谢谢@

解决方案 »

  1.   


    Calendar.MONTH的初始值是0
    System.out.println(c.get(MONTH+1)); 
      

  2.   

    MONTH加1的原因:
    public static final int MONTH
    指示月份的 get 和 set 的字段数字。这是一个特定于日历的值。在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。
    简单来说,因为这个值的初始值是0,因此我们要用它来表示正确的月份时就需要加1。