我不明白以下代码的输出是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));
答案 0 :(得分:1)
月是零指数。您需要10
而不是11
。
或者直接使用整数的instread,你可以有意义地写。
c.set(1991,Calendar.NOVEMBER, 12);
其中Calendar.NOVEMBER
是static 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日历字段的值。