我试图从日历中减去60天。示例代码
try {
cal.set(2014,02,12); //year,month,date
cal.add(Calendar.DATE, -60);
System.out.println("Year = " + cal.get(Calendar.YEAR));
System.out.println("Month = " + (cal.get(Calendar.MONTH)));
System.out.println("Day = " + cal.get(Calendar.DAY_OF_MONTH));
}
catch (Exception e) {
e.printStackTrace();
}
输出
Year = 2014
Month = 0
Day = 11
如果日期是
cal.set(2014,01,12); //year,month,date
输出很好:
Year = 2013
Month = 11
Day = 14
如何解决此问题?
答案 0 :(得分:3)
你得到1月份没有什么不对,months start from 0
月 - 用于设置MONTH日历字段的值。月值基于0。例如,1月份为0。
所以你得到的是2014年1月11日
修改: - 强>
基于下面的评论是月份代表:
因此,您的日期2014年 02 ,12实际上代表12- 3月 -2014,当您从中删除60天后,它将带您到1月,所以这一年不会改变。