Получение наноса в java.sql.Timestamp - PullRequest
3 голосов
/ 31 января 2012

http://docs.oracle.com/javase/6/docs/api/java/sql/Timestamp.html

Единственный недопустимый ctor занимает миллис. Нет ли способа спросить «сейчас», включая нанос.

Ответы [ 2 ]

4 голосов
/ 31 января 2012

getNanos()/setNanos(int) в Timestamp существует для поддержки баз данных, которые возвращают тип данных timestamp с точностью до наносекунды.

У Java нет средств для получения текущего времени с точностью до наносекунды. System.nanoTime() возвращает истекшие наносекунды из некоторой неизвестной эпохи, выбранной JVM. Это полезно для измерения прошедшего времени между двумя вызовами System.nanoTime(). Даже тогда, когда System.nanoTime() может измерять прошедшее время между вызовами с точностью до наносекунды, это не обязательно точно с точностью до наносекунды, как упомянуто в javadocs .

3 голосов
/ 31 января 2012

Как отмечалось в комментариях к другим ответам, System.nanoTime() на самом деле не возвращает никаких значимых значений времени в наносекундах.

Я хотел бы указать на это обсуждение из SO который указывает, почему мы не можем получить лучшую точность при измерениях времени.Казалось бы, подразумевается, что на самом деле невозможно сделать так, как вы просите, и что было бы против некоторых целей разработки Java пытаться включить эту возможность из-за переносимости и ограничений платформы.

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

...