我想在java中找到時間差異,這樣如果會話過期,我可以創建新的會話,否則將創建新的時間。查找時間差異
Q
查找時間差異
0
A
回答
3
Returns Time Diffrence in Seconds :
long elapsed_time = 0L;
java.util.Date startTime = null;
java.util.Date endTime = null;
double fsec = 0L;
String rSec = "";
startTime = new java.util.Date();
<--------Some Operation----->
endTime = new java.util.Date();
elapsed_time = endTime.getTime() - startTime.getTime();
fsec = (elapsed_time)/1000.00;
rSec = Double.toString(fsec);
rSec = rSec + " Sec";
+0
+0:使用日期體重相對較重,通常不準確。 – 2011-03-31 10:26:02
3
您可以使用System.currentTimeMillis();
來獲取Java中的當前系統時間(以毫秒爲單位,格林威治標準時間01-01-1970 00:00:00 GMT)。
會話對象很可能也有一個方法來獲取會話最後一次使用的時間(在您使用的任何會話對象的API文檔中查看它)。
從會話中減去當前時間,並知道會話上次使用以來的時間。如果它超過了超時時間,請做任何你必須做的事情。
請注意,servlet容器具有用於使會話失效的內置機制,您無需手動使會話無效。另外,如果沒有會話,HttpRequest.getSession()
將自動爲您創建一個新的HttpSession
對象。
2
使用日期意味着創建一個對象,是不需要,因爲它只是包裝System.currentTimeMillis()
遺憾的是此功能只精確到充其量是一個毫秒和大約16毫秒在某些Windows系統。
更好的方法是使用System.nanoTime()
在Oracle的JVM上,在Windows XP-7,Solaris和最新版本的Linux上,此準確度優於1微秒。它不會創建任何對象。
long start = System.nanoTime();
// do something.
long time = System.nanoTime() - start; // time in nano-seconds.
// time in seconds to three decimal places
String timeTaken = time/1000000/1e3 + " seconds";
相關問題
- 1. 查找小時之間的差異
- 2. JNDI查找時間巨大差異
- 3. 查找時間差
- 4. MySQL添加時間值之間的差異來查找平均差異。
- 5. Excel:查找日期之間的差異
- 6. SQL Server查找行之間的差異
- 7. SQL查找兩行之間的差異
- 8. 查找兩個時間戳之間的差異
- 9. 查找列之間的時間差
- 10. 時間的差異
- 11. 查詢執行時間差異?
- 12. 在分鐘查找時間差異powershell腳本
- 13. 使用php或mysql查找時間差異在幾分鐘內
- 14. 在kdb中查找日期中的時間戳差異
- 15. 查找差異數據幀
- 16. Mysql的查找差異
- 17. 查找模式差異
- 18. 查找列值的差異
- 19. 查找時間差並執行條件
- 20. LINQ-to-Entities查找日期時間差
- 21. Joda時間 - 時區之間的差異
- 22. 查詢查找Mysql中連續行之間的差異
- 23. SQL時間戳差異
- 24. AppEngine響應時間差異
- 25. Pandas中的時間差異
- 26. 減去時間戳差異
- 27. 考慮到時間差異
- 28. PHP時間和差異
- 29. Django時間字段差異
- 30. Nodejs中的時間差異?
你甚至沒有一半清楚! – adarshr 2011-03-31 09:31:43
你能不能詳細說一下 – 2011-03-31 09:31:46
你是不是指這個http://stackoverflow.com/questions/2027100/best-way-to-calculate-differnce-between-two-times-in-java? – 2011-03-31 09:34:25