[英]Difference in time between two dates in 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
基于其他答案, java.util.concurrent.TimeUnit
使得在毫秒,秒等之间转换变得非常容易......
long differenceInSeconds = TimeUnit.MILLISECONDS.toSeconds(date2.getTime() - date1.getTime());
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-8开始,您可以使用 -
ChronoUnit.DAYS.between(startDate.toInstant(), endDate.toInstant());
这是一个通用的枚举使用它,在任何单位中找到差异变得非常简单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.