我无法将TimeZone设置为日历

时间:2013-07-04 10:21:53

标签: java

我不明白以下代码的输出是12-12-1991,

请为我解释,谢谢你的帮助

Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+7"));
        SimpleDateFormat simpleDF = new SimpleDateFormat("dd-MM-yyyy");
        c.set(1991, 11, 12);
        Date d = c.getTime();              
        System.out.println(simpleDF.format(d));

4 个答案:

答案 0 :(得分:1)

月是零指数。您需要10而不是11

或者直接使用整数的instread,你可以有意义地写。

 c.set(1991,Calendar.NOVEMBER, 12);

其中Calendar.NOVEMBERstatic int字段,代表NOVEMBER

答案 1 :(得分:1)

1月是0月,所以当你设置11是12月 查看java.util.Date docs

答案 2 :(得分:1)

月值基于0。例如,1月份为0。

你必须改变

c.set(1991, 11, 12);

c.set(1991, 10, 12);

答案 3 :(得分:1)

来自javadocs

设置

public final void set(int year,
                  int month,
                  int date)
  

设置日历字段YEAR,MONTH和DAY_OF_MONTH的值。保留其他日历字段的先前值。如果不需要,请先调用clear()。   参数:   year - 用于设置YEAR日历字段的值。   month - 用于设置MONTH日历字段的值。 月值为0 。例如,1月份为0。   date - 用于设置DAY_OF_MONTH日历字段的值。