使用日历设置日期的问题

har*_*rqs 1 java datetime calendar

我试图使用以下代码段将日期设置为DEC 31,2012,但我将在2013年3月3日,这里有什么问题.

Calendar today = Calendar.getInstance();
today.set(Calendar.MONTH, 13);
today.set(Calendar.DAY_OF_MONTH, 31);
today.set(Calendar.YEAR, 2012);

long calendarNeverEndDate = today.getTime().getTime();
System.out.println("calendarNeverEndDate:"
                   + sdf.formatLocal(calendarNeverEndDate));
Run Code Online (Sandbox Code Playgroud)

Bet*_*sta 5

这是因为月份是0索引(是的,它与天数不一致:-().

编辑:正如Romain所说,最好使用常量

Calendar.DECEMBER
Run Code Online (Sandbox Code Playgroud)