gpt4 book ai didi

java - 与系统时间比较后程序无限期执行

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:50 25 4
gpt4 key购买 nike

说明 -正在从表中获取 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),则程序将在未来日期执行,而不是切换到实时模式。

请帮助解决我出错的地方。

最佳答案

我会改变:

while(startTime.getTime() != systemHour.getTime())

对于

while(startTime.getTime() > systemHour.getTime())

您的循环检查不太可能(几乎不可能)与 startTime 瞬间的毫秒相匹配。

关于java - 与系统时间比较后程序无限期执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24950255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com