检查是否已24小时

时间:2013-08-22 15:37:52

标签: java date time

我需要编写一个只能每24小时执行一次的方法。它抓取一个名为“lastCollection”的字符串,然后将其解析为某种时间对象。然后它应该获得当前时间,并检查它是否与“lastcollection”有24小时的差异。如果是这样,它应该执行一些代码,并将lastCollection设置为新的可读时间字符串。这是最好的方法吗?

2 个答案:

答案 0 :(得分:1)

这是通过某种东西调用还是需要每24小时运行一次?

如果可能,你可以睡觉。我需要一个代码示例来向您展示如何适应它。

如果每天一次,则按计划
在方法开始时获取时间 执行方法
获得新的时间
获得开始时间和当前时间的差异
在剩余的时间内休息,直到第二天的同一开始时间。

OR

需要在执行前检查
在方法开始时获取时间保存到变量
每次调用此方法时,请检查值的差异,如分钟(见下文)
如果它大于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
}

答案 1 :(得分: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();

     }