日期为什么日历类(Java)要重置其字段?
我正在尝试设置日历类实例的属性。但每次我到12月30日,它就会重新设置到下一年。这是日历课上的抽签吗
public Calendar setCalendar()
{
String Date = "2013-12-30";
int yyyy = Integer.parseInt(date.substring(0,4));
int mm = Integer.parseInt(date.substring(5,7));
int dd = Integer.parseInt(date.substring(8,10));
System.out.println(yyyy + " " + mm + " " + dd);
Calendar Cal= new GregorianCalendar();
Cal.set(yyyy,mm,dd);
System.out.println(Cal.get(Calendar.YEAR)+","+Cal.get(Calendar.MONTH));
return Cal;
}
输出: 2013 12 30 2014,0
# 1 楼答案
检查日历API文档,月值基于0,即一月为0
您正在将月份设置为12。这实际上给了你下一年的时间。要纠正错误,请尝试:
希望有帮助
# 2 楼答案
使用
Calendar
时,月份是以0为基础的,因此您实际上将月份设置为明年的一月如果您真的需要使用
Calendar
,我建议至少使用SimpleDateFormat
将String
解析为Date
,并使用它设置日历