Подтвердить что ты не робот

Монотонное увеличение времени на Java?

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

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

4b9b3361

Ответ 1

Считаете ли вы использование System.nanoTime()?

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

Ответ 2

JodaTime имеет класс для этого. Он называется Duration.

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

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