2012-01-31 36 views
3

http://docs.oracle.com/javase/6/docs/api/java/sql/Timestamp.html获得毫微成的java.sql.Timestamp

唯一的非弃用构造函数需要米利斯。有没有办法要求'现在',包括纳米。

+0

对不起,我不明白你的问题。我在这里看到了方法['getNanos'](http://docs.oracle.com/javase/6/docs/api/java/sql/Timestamp.html#getNanos%28%29),所以我很困惑到你要求的东西。你能否澄清一下有什么问题? – blahman 2012-01-31 02:11:37

+0

你的答案似乎表明你明白我的问题。 – bmargulies 2012-01-31 02:50:31

+0

哈哈,对不起,我读了一些答案,并意识到一个ctor是什么,然后开始阅读并发布了一个答案。抱歉,关于混淆^^' – blahman 2012-01-31 02:52:00

回答

3

正如在其他答案的评论中已经指出的那样,System.nanoTime()并没有真正返回有关纳秒时间的任何有意义的值。

我想指向this discussion from SO,它指出了为什么我们无法获得更好的时间测量精度。这似乎意味着,根据您的要求并不是真的有可能做到这一点,并且由于可移植性和平台限制,尝试并包含此功能会违反一些Java设计目标。

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

4

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

Java没有办法以毫微秒的精度获取当前时间。 System.nanoTime()从JVM选择的某个未知历元返回已过去的纳秒。测量两次调用System.nanoTime()之间的时间间隔非常有用。虽然System.nanoTime()可以测量调用到纳秒精度之间的经过时间,但它不一定精确到如javadocs中提到的纳秒精度。

+0

+1给出了为什么getNanos()和setNanos(int)存在的原因 – blahman 2012-01-31 02:49:12