如何验证java中的时间戳?

问题描述:

我有一个时间变量如何验证java中的时间戳?

long time = (new Date()).getTime(); 

如何将我这个执行if语句?例如

if (time is over 5 minute) 
    system.out.println("time is up") 
else 
    system.out.println("OK TIME") 

进出口寻找到测试的时候,看到的是,如果已经分钟自变量被初始化,然后执行if语句如果时间已经过了一定的数量。

+0

这会帮助你。 http://*.com/questions/2309558/time-comparison – 2015-03-03 10:55:27

要检查两个日期相差在几分钟内,使用方法:

Date dateBefore = new Date(); 

//some computing... 

Date dateAfter = new Date(); 

long timeInMinutes = (dateAfter.getTime()/60000) - (dateBefore.getTime()/60000); 
if (timeInMinutes > 5) { 
//something 
} else { 
//something 
} 

如果您需要更精确的结果(某些诊断,例如),你应该使用System.nanoTime()。

类似的东西:

public static void main(String[] args) throws IOException, InterruptedException { 

    Calendar cal = Calendar.getInstance(); 
    cal.setTime(new Date()); 
    cal.add(Calendar.MINUTE, 1); 

    System.out.println(new Date()); 

    while(System.currentTimeMillis() < cal.getTimeInMillis()){ 
     System.out.println("not" + new Date()); 
     Thread.sleep(1000); 
    } 

    System.out.println("done"); 
} 

也许你正在检查的变量“时间”值包含的提前5分钟的毫秒。

long time = (new Date()).getTime(); 

long currentTime = System.currentTimeInMillis(); 
long fiveMinutesInMilliSeconds = 5 * 60 * 1000L; 

if((time + fiveMinutesInMilliSeconds) <= currentTime) 
    System.out.println("Time's Up!); 
else 
    system.out.println("OK TIME") 
+1

把' Apurva 2015-03-03 11:04:11

+0

只是错过了!谢谢Apurva! :) – 1000111 2015-03-03 11:09:26

我认为,如果你得到两个日历比如,你可以这样做:

Calendar variableInitialised = Calendar.getInstance(); 

之后,你把你的限制时间的情况下,

variableInitialised.add(Calendar.MINUTE, 5); 

而且你改变如果是这样的话:

if(variableInitialised.after(Calendar.getInstance())) 

您需要采取另一个'startTime'变量来指示开始时间。 然后您可以计算CurrentTime和StartTime之间的差异。 在'if'子句中使用此差异。

   // has to be the time in past 
       // Following constructor of Date is depricated. 
       // Use some other constructor. I added it for simplicity. 
       long startTime = new Date(2015, 3, 3).getTime(); 
       long currentTime = new Date().getTime(); 

       long timeDiff = currentTime - startTime; 
       long fiveMinutes = 300000; // 5 minutes in milliseconds 
       if(timeDiff > fiveMinutes){ 
        // TODO 
       }