【问题标题】:Getting nanos into a java.sql.Timestamp将 nanos 放入 java.sql.Timestamp
【发布时间】:2012-02-22 19:33:37
【问题描述】:

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

唯一不被弃用的ctor需要millis。有没有办法要求包括纳米在内的“现在”。

【问题讨论】:

  • 对不起,我不明白你的问题。我在这里看到了getNanos 的方法,所以我对你的要求感到困惑。你能澄清什么是错的吗?
  • 您的回答似乎表明您理解我的问题。
  • 哈哈,对不起,我看了一些答案,意识到什么是演员,然后开始阅读并发布了答案。很抱歉造成混乱^^'

标签: java jdbc time timestamp


【解决方案1】:

getNanos()/setNanos(int) on Timestamp 的存在是为了支持以纳秒精度返回时间戳数据类型的数据库。

Java 无法以纳秒精度获取当前时间。 System.nanoTime() 从 JVM 选择的某个未知时期返回经过的纳秒。它对于测量两次调用System.nanoTime() 之间的经过时间很有用。即使System.nanoTime() 可以测量调用之间的经过时间到纳秒精度,它也不一定精确到纳秒精度,如javadocs 中所述。

【讨论】:

  • +1 说明getNanos() 和setNanos(int) 存在的原因
【解决方案2】:

正如 cmets 在其他答案中所指出的,System.nanoTime() 并没有真正返回任何有意义的以纳秒为单位的时间值。

我想指出this discussion from SO,它指出了为什么我们的时间测量无法获得更高的准确性。这似乎意味着实际上不可能按照您的要求进行操作,并且由于可移植性和平台限制,尝试包含此功能将违反某些 Java 设计目标。

所以,在回答你的问题时,我会说不,但只是基于比我有更多代表的人的回答。

【讨论】:

    猜你喜欢
    • 2013-11-14
    • 2012-06-27
    • 2013-01-27
    • 2012-09-12
    • 1970-01-01
    • 2018-12-24
    • 2012-02-18
    • 2011-11-18
    • 2017-08-30
    相关资源
    最近更新 更多