我正在使用以下代码计算特定用户的非活动间隔:
inActiveInterval = System.currentTimeMillis() - objHttpSession.getLastAccessTime();
如果会话有昨天的时间,这会给上次访问时间带来正确的差异吗?
答案 0 :(得分:3)
是的,这是正确的。根据{{3}}的API:
返回自格林威治标准时间1970年1月1日午夜以来的最后一次[...]毫秒数
与HttpSession.getLastAccessedTime()
一致:
<强>返回:强> 当前时间与1970年1月1日午夜时间之间的差异,以毫秒为单位。
您也可以使用:
new Date().getTime()
因为System.currentTimeMillis()
具有相同的含义:
返回:自1970年1月1日00:00:00 GMT以来,该日期所代表的毫秒数。
答案 1 :(得分:1)
通常是的,时间单位的粒度通常取决于操作系统,如 System.currentTimeMillis() javadoc所述:
...值的粒度取决于底层操作系统,可能更大。例如,许多操作系统以几十毫秒为单位测量时间。
但这不应该造成问题,因为大多数操作系统的分辨率应该足够好。