ジョブがランタイム内にあるかどうかを判断する次のコード スニペットがあります。
private boolean isDuringRuntime(Job job) {
Date now = new Date();
System.out.println(DateUtil.getToday());
System.out.println(job.getStartTime().toString());
System.out.println(job.getEndTime().toString());
Date startTime = new Date(job.getStartTime().getTime()
+ DateUtil.getToday().getTime());
Date endTime = new Date(job.getEndTime().getTime()
+ DateUtil.getToday().getTime());
System.out.println("Start Time: " + startTime.toString());
System.out.println("Stop Time: " + endTime.toString());
return now.after(startTime) && now.before(endTime);
}
DateUtil.getToday()
public static Date getToday() {
Date now = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(now);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
1回の実行の出力は次のとおりです。
Sun Jul 14 00:00:00 EDT 2013 //This is DateUtil.getToday();
1970-01-01 13:15:00.0 //Raw Start Time
1970-01-01 18:15:00.0 //Raw End Time
Start Time: Sun Jul 14 18:15:00 EDT 2013 //Computed Start Time
Stop Time: Sun Jul 14 23:15:00 EDT 2013 //Computed End Time
計算された開始時刻と計算された終了時刻が 5 時間進んでいる理由がわかりません。開始時刻はSun Jul 14 13:15:00 EDT 2013
、終了時刻は になると思いますSun Jul 14 18:15:00 EDT 2013
。
誰かが私が間違っているところを指摘できますか? 私はよく知らないのでDate
、単純なものを見落としているのではないかと思います。