我需要编写一个每 24 小时只能执行一次的方法。它抓取一个名为“lastCollection”的字符串,然后将其解析为某种时间对象。然后它应该获取当前时间,并检查它是否与“lastcollection”有 24 小时的差异。如果是这样,它应该执行一些代码,并将 lastCollection 设置为一个新的可读时间字符串。这样做的最佳方法是什么?
问问题
2635 次
2 回答
1
这是被什么东西调用的,还是需要每 24 小时运行一次的东西?
如果可能的话,你可以睡觉。我需要一个代码示例来向您展示如何适应它。
如果每天一次按计划
获取方法开始时的时间。
执行方法
获取新时间
获取开始时间和当前时间的差异
休眠剩余时间,直到第二天的相同开始时间。
或者
需要
在方法开始时执行获取时间保存到变量之前检查
每次调用此方法时检查值的差异,例如分钟(见下文)
如果大于 24,则重复该方法
日期差异可以这样完成:
Date lasttimeran = null;
Date now = null;
long diff = now.getTime() - lasttimeran.getTime();
long diffMinutes = diff / (60 * 1000);
//If block to check if it has been long enough >= ensures a diff of exactly 24 hours will still trigger the method to be ran
if (diffMinutes >= 1440) {
//Do Something
}
else{
//Do Nothing
}
于 2013-08-22T15:45:04.177 回答
0
Calendar expCal = Calendar.getInstance();
while (true) {
expCal.add(Calendar.HOUR, 24);
Date expirationDate = expCal.getTime();
Date currentDate = new Date();
if (currentDate.compareTo(expirationDate) == 0)
//Do your Work here
expCal = Calendar.getInstance();
}
于 2013-08-22T15:54:42.727 回答