Монотонно увеличивается время на Java? - PullRequest
20 голосов
/ 12 января 2009

В приложении Java я хочу иметь возможность делать отметку времени в начале операции и иметь возможность периодически проверять, как долго выполнялась операция. Загвоздка в том, что я не хочу, чтобы на меня влиял сетевой протокол времени, перемещающий часы, или администратор, изменяющий время, или что-то, что может резко настроить время дня. Я хочу монотонно увеличивающееся значение времени. Я считаю, что это исключает java.util.Date, Time и Calendar.

Есть ли какой-то источник монотонно увеличивающейся временной метки в JRE?

Ответы [ 2 ]

21 голосов
/ 12 января 2009

Рассматривали ли вы использование System.nanoTime () ?

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

3 голосов
/ 12 января 2009

JodaTime имеет класс для этого. Это называется Продолжительность .

«Они не имеют хронологии или часового пояса и состоят исключительно из миллисекундной продолжительности».

Также вы можете установить свою метку даты на время по Гринвичу, и протокол сетевого времени не должен быть проблемой.

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