Будет ли System.currentTimeMillis () иметь подробную информацию о дате? - PullRequest
1 голос
/ 02 февраля 2012

Я рассчитываю интервал неактивности конкретного пользователя, используя следующий код:

inActiveInterval = System.currentTimeMillis() - objHttpSession.getLastAccessTime();

Даст ли это правильную разницу с последним временем доступа, если сеанс имеет вчерашнее время?

Ответы [ 2 ]

3 голосов
/ 02 февраля 2012

Да, это правильно.Согласно API HttpSession.getLastAccessedTime():

Возвращает последний раз [...] как количество миллисекунд с полуночи 1 января 1970 года по Гринвичу

Что соответствует System.currentTimeMillis():

Возвращает: разница, измеренная в миллисекундах, между текущим временем и полночью января1, 1970 UTC.

Вы также можете использовать:

new Date().getTime()

, так как Date.getTime() имеет то же значение:

Возвращает: количество миллисекунд с 1 января 1970 года, 00:00:00 по Гринвичу, представленное этой датой.

1 голос
/ 02 февраля 2012

Обычно да, гранулярность единиц времени обычно зависит от ОС, как объяснено System.currentTimeMillis () javadoc :

... степень детализации значения зависит от базовой операционной системы и может быть больше. Например, многие операционные системы измеряют время в десятках миллисекунд.

Но это не должно вызывать проблем, поскольку разрешение большинства ОС должно быть достаточно хорошим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...