2013 年 2 月 13 日午後 11 時にマークされた日付オブジェクトがあるとします。たとえば、午前 3 時に次の最も早い日付オブジェクトを取得しようとしています。この場合、2013 年 2 月 14 日午前 3 時になります。
日付フィールドに 1 日を追加し、時刻を午前 3:00 に設定するだけでこれを行うことができますが、次の場合はどうでしょう。
2013 年 2 月 14 日の午前 1 時にマークされた日付オブジェクトがあります。ここでは、日付を追加する必要はなく、単純に時間を設定します。
これを行うエレガントな方法はありますか?以下は私がこれまでに行ったことであり、うまくいくと思いますが、これを簡単にするAPIがあるかどうか疑問に思っていました. getNextSoonestDate() などのようなもの
Calendar calendar = Calendar.getInstance();
//myDate is some arbitrary date, like one of the examples posted above (i.e. feb 13th 11pm)
calendar.setTime(myDate);
//set the calender to be 3am
calendar.set(Calendar.HOUR_OF_DAY, 3);
//check if this comes before my current date, if so we know we need to add a day
if (calendar.getTime().before(myDate)){
calendar.add(Calendar.DAY_OF_YEAR, 1);
}