这是我的代码:

月是循环传递的。前0(因为我键入的是一月),然后是1,依此类推。下个月是二月,此循环将从该日期开始。 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月。
..等等

如您所见,第一个月不是预期的2月。我相信这是1月29日,因此可能会有些原因,因为我们已经接近2月了。但是如果是这样,为什么会发生两次呢?

我知道由于我不使用unix时间戳,所以事情不完全正确,是否有办法计算出至少可以得到准确的月订购量呢?

最佳答案

由于今天是30日,您将获得当前日期(2015-01-30),并增加月份以获取2015-02-30-自2月份以来,该日期“滚动”到2015-03-02 30天。

避免此问题的一种方法是在更改月份之前将月份的天数设置为1。

10-05 17:41