注: この回答は Java 8 以降では正確ではない可能性が高く、現在はより優れた日付/カレンダー APIがあります。
標準的な代替手段は、Calendar
オブジェクトを使用することです。
Calendar cal = Calendar.getInstance(); // that is NOW for the timezone configured on the computer.
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
Date date = cal.getTime();
Calendar
ライブラリを追加せずに利用できるという利点があり、広く理解されています。また、Javadocの文書化された代替手段でもあります。Date
のドキュメントはCalendar
ここにあります: Javadoc
Calendar
(不注意な人にとって) 危険な点が 1 つあります。それはafter
/before
メソッドです。を受け取りますが、オブジェクトObject
のみCalendar
を正しく処理します。これらのメソッドを使用する前に、Javadoc をよく読んでください。
1 日を追加する ( ) や、1 週間を「スクロール」する ( ) などCalendar
、さまざまな方法でオブジェクトを変換できます。全体像を把握するには、Javadoc のクラスの説明を読んでください。cal.add(Calendar.DAY_OF_YEAR, 1);
cal.roll(Calendar.DAY_OF_WEEK, 1);