Date を同じ日の時刻「23:59:59.999」に設定するメソッドを作成したいだけです。だから私はこれを作った:
public static Date date235959(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.set(Calendar.HOUR, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
c.set(Calendar.MILLISECOND, 999);
//c.set(Calendar.AM_PM, Calendar.PM);
return c.getTime();
}
私が実行すると:
Date d = new Date();
d=date235959(d);
System.out.println(d.toString());
d=date235959(d);
System.out.println(d.toString());
Tue
Sep 17 23:59:59 BRT 2013
Tue Sep 17 23:59:59 BRT 2013
しかし、出力は
Tue Sep 17 23:59:59 BRT 2013
Wed Sep 18 11:59:59 BRT 2013 でした。
なぜそれが起こったのですか?どうすれば修正できますか?