私は何か非常に簡単なことをしようとしています、日付を取って、翌月の最初の日を取得します。私はカレンダーを使ってみました。ここで、dateはCalendar型です。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
Iは cal.set(2016,11,30)として日付を使用します。 2016-12-01の代わりに2017-01-01という出力が得られます。私が間違って何をしているのか?
月の値はゼロベースなので、11はcal.set(2016,11,30) – dev8080
IMOの12月を意味します。このゼロベースの月は、この日付APIで最悪のものです。別のAPIを使用することをおすすめします:http://stackoverflow.com/a/589940/7605325 –
Java SE 8を使用できる場合は、新しいLocalDate APIを使用してください。 – dev8080