我正在尝试为Calendar类实例设置属性。但每次到12月30日,它都会重置到明年。这是Calendar类中的绘图吗?
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
答案 0 :(得分:3)
Calendar
个月的基数为0,因此您实际上将月份设置为明年的1月份。
如果您确实需要使用Calendar
我建议您至少使用SimpleDateFormat
将String
解析为Date
并使用该{1}}设置日历。
答案 1 :(得分:0)
检查Calendar API doc,月值为0,即Jan为0.
month - 用于设置MONTH日历字段的值。月值基于0。例如,1月份为0。
您将月份设置为12.这有效地为您提供了明年。要纠正尝试:
Cal.set(yyyy,mm-1,dd);
希望有所帮助