java中两个日期之间的时间差异

我必须找到java中两个不同日期对象之间的时间差异,如果超过5秒,我必须使会话无效。

这是场景:

我有一个jsp页面,每隔5秒设置一次会话

session.setAttribute( "sessionAccessedAt", new Date() ); 

我有另一个jsp页面,每1秒访问一次,

 Date date2 = new Date(); 

现在我必须比较我提到的另一个jsp并使会话无效,

 Date date1 = (Date)session.getAttribute("sessionAccessedAt"); Date date2 = new Date(); Differnce = date2 - date1; 

因此,如果差异超过5秒,则会话无效。

  long difference = date2.getTime() - date1.getTime(); // now you have your answer in milliseconds - //so divide by 1000 to get the time in seconds 
 if ((date2.getTime() - date1.getTime()) > 5000) { // getTime returns the time in milliseconds // invalidate } 

但是会话超时应该由容器处理,而不是由你处理。

PS:阅读javadoc很容易回答: http : //download.oracle.com/javase/6/docs/api/index.html

基于其他答案, java.util.concurrent.TimeUnit使得在毫秒,秒等之间转换变得非常容易……

  long differenceInSeconds = TimeUnit.MILLISECONDS.toSeconds(date2.getTime() - date1.getTime());