我的应用程序中有这个文本Last seen:
字段,显示当前用户在系统上登录的时间(例如5秒前,4小时前,3天前等)。现在我要做到这一点,我需要确定:
然后将其减去当前时间。但是如何才能访问两者中任何一个的创建时间?或者有没有更好的方法来实现这一点,而不是使用上面提到的?
答案 0 :(得分:3)
我不知道Apache Shiro,但我可以告诉你如何获得session creation time
。
实际上非常简单,getCreationTime()
中有一个名为HttpSession
的方法。这是doc
您可以在控制器中提供的session attribute
上调用此方法。这将以毫秒为单位返回long
。
答案 1 :(得分:3)
在您的控制器操作中,您可以这样写:
class MyController {
// Considering this action is secured for logged in user only
def foo() {
long currentMillis = new Date().getTime()
long sessionCreationMillis = session.getCreationTime()
long loggedInFor = currentMillis - sessionCreationMillis
println "User has been logged in for $loggedInFor miliseconds"
}
}
现在,您了解了用户登录的时间(以毫秒为单位)。此外,您可以使用TimeUnit库将毫秒转换为其他值。
或者,如果您打算在客户端进行此操作,也可以使用this之类的任何Javascript库。