Почему преобразование System.nanoTime () в объект Calendar дает мне неправильную текущую дату?

Если я правильно понимаю, использование System.nanoTime() – более точный способ сохранения маркера в текущее время, чем System.currentTimeInMillis() , даже если системное время было изменено. Так почему же, когда я конвертирую длинное значение nanoTime() в объект Calendar , результат неправильный?

 import java.util.Calendar; public class Test { public static void main(String[] args) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(System.currentTimeMillis()); System.out.println(c.get(Calendar.MONTH) + " " + c.get(Calendar.DATE) + " " + c.get(Calendar.YEAR) + " " + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND) + ":" + c.get(Calendar.MILLISECOND)); } } 

System.nanotime () javadoc предлагает:

Возвращает текущее значение наиболее точного доступного системного таймера в наносекундах.

Этот метод можно использовать только для измерения прошедшего времени и не имеет отношения к какому-либо другому понятию системного или настенного времени. Возвращаемое значение представляет собой наносекунды с некоторого фиксированного, но произвольного времени (возможно, в будущем, поэтому значения могут быть отрицательными). Этот метод обеспечивает наносекундную точность, но не обязательно наносекундную точность. Нет никаких гарантий относительно того, как часто меняются значения. Различия в последовательных вызовах, которые охватывают более 292 лет (263 наносекунды), не будут точно вычислять прошедшее время из-за численного переполнения.

Например, чтобы определить, сколько времени потребуется выполнить код:

 long startTime = System.nanoTime(); // ... the code being measured ... long estimatedTime = System.nanoTime() - startTime; 
Intereting Posts
Получение позиции в onCreateViewHolder Мерцание экрана OpenGL ES 2.0 Android Studio Ошибка "путь вывода не указан для модулей" Как отклонить родительское дополнение в дочернем элементе Будет stopService () остановить службу переднего плана? Adt не создает мир приветствия по умолчанию, но в командной строке Как установить источник ImageViews динамически из ArrayList <String> с именем Drawable image? Как интегрировать огурец в проект андроида-maven? Использование javascript для захвата фотографий с iPhone / Android-камеры Как установить растровое изображение в холсте моего пользовательского представления? Как получить все универмаги, присутствующие в городе в андроиде, используя сайты google? Добавление тела в электронную почту на Android Можно ли использовать Intent.FLAG_ACTIVITY_MULTIPLE_TASK? IntelliJ не останавливается в контрольных точках при отладке приложения для Android Как использовать OnClickListner в CardView в RecyclerView?