日历月实例已关闭

时间:2015-01-30 00:27:14

标签: java calendar

这是我的代码:

在循环中传入月份。第一个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时间戳,所以事情并不准确,是否可以计算出这个我至少可以获得准确月份订购的地方?

1 个答案:

答案 0 :(得分:1)

由于今天是30日,你将获得当前日期(2015-01-30),并将月份增加到2015-02-30 - 其中"翻身"自二月起到2015-03-02还没有30天。

避免此问题的一种方法是在更改月份之前将日期设置为1.