我正在尝试做一些非常简单的事情,拿一个日期并从下一个月获取第一天。我曾尝试使用日历。这里的日期是日历类型。Java获取下个月的第一天给定日期
Calendar nextMonthFirst = (Calendar)date.clone();
int year = date.get(Calendar.YEAR);
int month = date.get(Calendar.MONTH);
nextMonthFirst.clear();
nextMonthFirst.set(year, month+1,1);
nextMonthFirst.add(Calendar.DAY_OF_MONTH, 0);
return nextMonthFirst
当我使用日期作为 cal.set(2016,11,30); 我得到的输出为2017-01-01,而不是2016-12-01。任何想法我做错了什么?
月份值是从零开始的...所以11意味着12月份当您做cal.set(2016,11,30) – dev8080
IMO时,这个零基月份是这个日期API中最糟糕的事情。我建议您使用其他API:http://stackoverflow.com/a/589940/7605325 –
如果您可以使用Java SE 8,请使用新的LocalDate API。 – dev8080