Date date = Date.valueOf("2016-12-31");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
String month = format.format(date);
String start = month + "-01 00:00:00";
String end = month + "-31 23:59:59";
for(int i = 0; i < 3; i++) {
System.out.println("before=" + date.getMonth());
date.setMonth(date.getMonth()-1);
System.out.println("after=" + date.getMonth());
month = format.format(date);
start = month + "-01 00:00:00";
end = month + "-31 23:59:59";
}
运行结果
before=11
after=11
before=11
after=10
before=10
after=9
如果改成2016-12-30的话月份计算就正常了,请问是什么原因呢?