System.currentTimeMillis vs System.nanoTime



В Java есть два стандартных способа проведения тайм-операций и не всегда понятно, какой из них следует выбрать.



Метод System.currentTimeMillis возвращает текущее количество миллисекунд от начала эпохи Unix в формате Long. Его точность составляет от 1 до 15 тысячных долей секунды в зависимости от системы.



long startTime = System.currentTimeMillis();

long estimatedTime = System.currentTimeMillis() - startTime;



Метод System.nanoTime имеет точность до одной миллионной доли секунды (наносекунды) и возвращает текущее значение наиболее точного доступного системного таймера.



long startTime = System.nanoTime();

long estimatedTime = System.nanoTime() - startTime;



Таким образом, System.currentTimeMillis отлично подходит для отображения абсолютного времени и синхронизации с ним, а System.nanoTime – для измерения относительных интервалов.



#lesson #time