这是我的代码:
在循环中传入月份。第一个0(因为我输入的是1月),然后是1,依此类推。下个月2月时,这个循环将从该日期开始。 1,2等等
int thisMonth = Calendar.getInstance().get(Calendar.MONTH) + 1;
cal = Calendar.getInstance();
df = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
cal.set(Calendar.MONTH, month + thisMonth);
String sMonth = df.format(cal.getTime());
在第一个循环中,sMonth
是2015年3月。
在第二个循环中,sMonth
是2015年3月。
在第三个循环中,sMonth
是2015年4月。
在第四个循环中,sMonth
是2015年5月。
..等等
如您所见,第一个月不是预期的二月。我相信它是1月29日所以可能有一些原因,因为我们距离2月很近。但如果是这样的话,为什么会发生两次?
我知道因为我没有使用unix时间戳,所以事情并不准确,是否可以计算出这个我至少可以获得准确月份订购的地方?
答案 0 :(得分:1)
由于今天是30日,你将获得当前日期(2015-01-30),并将月份增加到2015-02-30 - 其中"翻身"自二月起到2015-03-02还没有30天。
避免此问题的一种方法是在更改月份之前将日期设置为1.