2011-05-10 124 views
1

我正在開發基於java的日期和時間的應用程序。在這個應用程序中,我的用戶每小時只能錄製一次視頻。所以爲此我存儲了以前使用我的應用程序的時間。比較小時和分鐘

因此,當用戶下次啓動我的應用程序時,我在比較時間,如果時間間隔超過一個小時,我必須允許我的用戶進行錄製,否則我不應該允許。如何在java中有效比較小時和分鐘?

回答

7

獲取系統時間與

long time = System.currentTimeMillis(); 

,並與舊的比較新的時間。一小時是指1000 * 60 * 60毫秒

+0

+1:我寧願寫'60 * 60 * 1000'。或'3600 * 1000';)注意:這不受夏時制變化的影響。 – 2011-05-10 10:32:47

2

爲什麼不直接存儲他們退出的時間(或其他),然後在啓動時,讀取時間,添加一小時,並與當前時間進行比較?

您不需要比較實際的小時數和分鐘數 - 只需要比較從現在到現在的時間。

我個人建議所有Java日期/時間工作使用Joda Time,但在這種情況下,您可以使用Date,並添加一小時的毫秒數。請注意,您應該存儲UTC日期/時間而不是本地日期/時間,否則夏令時更改等會導致混亂。

1

我會用喬達Period一個區別:看看here

+4

+0:我會稱之爲過度殺傷9000極限;) – 2011-05-10 10:35:04

7

@Dalino的回答,您可以使用TimeUnit枚舉類的時間轉換。

long now = System.currentTimeMillis(); 
long lastVisit = ...; // in milliseconds 
if(TimeUnit.MILLISECONDS.toHours(now - lastVisit) > 0) { 
    // allow 
}