嗨我的web應用程序中的每個人都生成了一個驗證碼,用戶可以輸入驗證碼進行帳戶激活。我希望生成的驗證碼在特定時間段內有效,例如12小時或24小時。我在生成代碼時存儲了日期和時間的詳細信息,但我如何檢查有效性意味着假設用戶輸入了代碼,如何檢查他是否在驗證期間輸入了代碼?如何比較日期和時間?謝謝在java中的有效性比較
回答
我不會認爲這是一個日期和時間。我想它是即時。當您生成驗證碼時,請在「從現在起24小時」的時間內及時處理,並將其存儲。然後,只需在驗證驗證碼時檢查「當前即時」即可。
您可以使用System.currentTimeMillis()
以毫秒爲單位獲取long
值。 (這是自Unix時代開始的,但實際上這並不重要)。事實上,我建議你創建一種可用於確定當前時間的接口,其實現使用System.currentTimeMillis()
或Joda Time等效。這樣你可以更容易地單元測試你的代碼。
因此,採取當前的毫秒數,添加適當的持續時間(再次,以毫秒爲單位),這就是你的到期時刻。
http://docs.oracle.com/javase/7/docs/api/java/util/Date.html
後()和()之前,方法做ecactly你想要什麼。
這裏真的不需要'日期'。只是「毫秒數」很容易存儲和比較... – 2012-03-29 12:37:06
沒錯。該死的,我恨你:)。我會把它留在這裏作爲替代,但upvote去找你,ofc。順便說一句,從我的角度來看,從來沒有需要java.util.Date ... – 2012-03-29 12:38:30
Java Date類具有用於比較日期的before()和after()函數。
使用數據庫如my sql來存儲驗證碼。有一個名爲createdTime的字段。當用戶試圖驗證,從現在減去createdTime()來獲得小於24
迴應:日期減法
select something from someTable where createdTime >= date_sub(now(), interval 24 hour)
您可以使用Calender對象 的before
或after
例如:
// initialize ur date here
Date issueded = null;
Calendar issuedDate = Calendar.getInstance();
issuedDate.setTime(issueded);
Calendar expiredDate = Calendar.getInstance();
// minus 12 H
expiredDate.add(Calendar.HOUR, -12);
if(expiredDate.before(issuedDate)) {
// do ur thing
} else {
// expired
}
- 1. 有效的比較
- 2. 效率:Java中的UUID與int比較
- 3. Java比較器的性能?
- 4. 的Java getPeerCertificates()性能比較
- 5. 在Python中有效比較兩組
- 6. 使用比較器來比較Java中的對象屬性
- 7. 在java中比較double和int是否有效?
- 8. Java List.SubList()性能比較
- 9. SQL中的有效日期比較
- 10. 比較在Java
- 11. 比較Java中2個基元的最有效方法?
- 12. Java的Java中多比較
- 13. 效率比較
- 14. 比較效率
- 15. 在powershell中比較屬性
- 16. 在Java中比較日期
- 17. 在java中比較int值?
- 18. 在Java中比較文件?
- 19. 在java中比較長值
- 20. 在JAVA中比較圖片
- 21. 比較的Java
- 22. 高效比較數千個文件Java
- 23. 比較在Java 8
- 24. Scala XML性能與Java XML的比較
- 25. Java:沒有比較正確
- 26. 大熊貓 - 有效的元素比較
- 27. std :: set的有效比較函數
- 28. php數組比較的有效方法
- 29. 有效的PHP日期比較
- 30. 這是比較有效的PHP:array_intersect()或array_intersect_key()
目前尚不清楚問題實際是什麼。我只是使用標準日期/時間函數將生成的時間和輸入的時間轉換爲具有減法運算符的格式,該運算符返回秒。究竟發生了什麼問題? – 2012-03-29 12:33:05
我的問題是,當用戶註冊到站點系統生成一個有效的代碼,說12或24小時。我想確保用戶在驗證期間輸入了代碼。 – kanchan 2012-03-29 12:37:33
好的,那樣做。當用戶輸入代碼時,查看代碼在數據庫中生成的時間。從當前時間減去並與適當的秒數進行比較。或者,懶惰地將過期時間存儲在數據庫中。 – 2012-03-29 12:40:01