我正在開發基於java的日期和時間的應用程序。在這個應用程序中,我的用戶每小時只能錄製一次視頻。所以爲此我存儲了以前使用我的應用程序的時間。比較小時和分鐘
因此,當用戶下次啓動我的應用程序時,我在比較時間,如果時間間隔超過一個小時,我必須允許我的用戶進行錄製,否則我不應該允許。如何在java中有效比較小時和分鐘?
我正在開發基於java的日期和時間的應用程序。在這個應用程序中,我的用戶每小時只能錄製一次視頻。所以爲此我存儲了以前使用我的應用程序的時間。比較小時和分鐘
因此,當用戶下次啓動我的應用程序時,我在比較時間,如果時間間隔超過一個小時,我必須允許我的用戶進行錄製,否則我不應該允許。如何在java中有效比較小時和分鐘?
獲取系統時間與
long time = System.currentTimeMillis();
,並與舊的比較新的時間。一小時是指1000 * 60 * 60毫秒
爲什麼不直接存儲他們退出的時間(或其他),然後在啓動時,讀取時間,添加一小時,並與當前時間進行比較?
您不需要比較實際的小時數和分鐘數 - 只需要比較從現在到現在的時間。
我個人建議所有Java日期/時間工作使用Joda Time,但在這種情況下,您可以使用Date
,並添加一小時的毫秒數。請注意,您應該存儲UTC日期/時間而不是本地日期/時間,否則夏令時更改等會導致混亂。
從@Dalino的回答,您可以使用TimeUnit
枚舉類的時間轉換。
long now = System.currentTimeMillis();
long lastVisit = ...; // in milliseconds
if(TimeUnit.MILLISECONDS.toHours(now - lastVisit) > 0) {
// allow
}
+1:我寧願寫'60 * 60 * 1000'。或'3600 * 1000';)注意:這不受夏時制變化的影響。 – 2011-05-10 10:32:47