解释 - 正在从表中提取StartTime(EX- 2014-07-25 12:00:00)
Startwork()执行插入功能
do {
long time = startTime.getTime() + (((59 * 60) + 59) * 1000);
Date endTime = new Date(time);
System.out.println("INFO: Calling startWork(" + startTime + "," + endTime + ")");
startWork(startTime, endTime);
startTime = new Date(startTime.getTime() + (60 * 60 * 1000));
systemHour = new Date(new Date().getYear(), new Date().getMonth(), new Date().getDate(), new Date().getHours(), 0, 0);
String stringToUpdateLastProcessedTime = "update meter_thread set last_processed_time='" + sdf.format(startTime) + "' where name='Gateway Park Occupancy' ";
mysqlStatement.executeUpdate(stringToUpdateLastProcessedTime);
}
while (startTime.getTime() != systemHour.getTime());
System.out.println("INFO: Switching to live mode");
Thread.sleep(1000 * 55 * 60);
我遇到的问题是,如果从表中获取的启动时间是(ex -2014-07-25 12:00:00)并且当前系统时间是(ex-),则程序将在未来的日期执行2014-07-25 12:20:00)而不是切换到实时模式。
请帮助我出错的地方。
答案 0 :(得分:1)
我会改变:
while(startTime.getTime() != systemHour.getTime())
对于
while(startTime.getTime() > systemHour.getTime())
相当不可能(几乎不可能)你的循环检查将与startTime
瞬间的毫秒相匹配。