2015-03-03 95 views
1

我有一個時間變量如何驗證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://stackoverflow.com/questions/2309558/time-comparison – 2015-03-03 10:55:27

回答

0

要檢查兩個日期相差在幾分鐘內,使用方法:

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()。

0

類似的東西:

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"); 
} 
2

也許你正在檢查的變量「時間」值包含的提前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

0

我認爲,如果你得到兩個日曆比如,你可以這樣做:

Calendar variableInitialised = Calendar.getInstance(); 

之後,你把你的限制時間的情況下,

variableInitialised.add(Calendar.MINUTE, 5); 

而且你改變如果是這樣的話:

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

您需要採取另一個'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 
       }