请包括毫微秒,否则将是微不足道的:如何计算两个Java java.sql.Timestamps之间的差异?
long diff = Math.abs(t1.getTime() - t2.getTime());
[编辑]我想最精确的结果,所以没有双打;只有整数/长整数算术。此外,结果必须是积极的。伪代码:
Timestamp result = abs (t1 - t2);
实例:
t1 = (time=1001, nanos=1000000), t2 = (time=999, nanos=999000000)
-> diff = (time=2, nanos=2000000)
是的,在的java.sql.Timestamp毫秒的时间和毫微秒帕是重复的,所以1001毫秒装置1秒(1000)和1毫它在time
部分和nanos
部分,因为1毫秒= 1000000纳秒)。这比看起来更狡猾。
我建议不要发布没有实际测试的代码或具有工作代码示例准备:)
所以你是否有解决方案,你会发布,如果没有人得到它? – 2009-02-24 16:23:26
根据时间戳源代码中的注释,millis部分实际上并没有在纳米中复制。相反,直到秒数存储在java.lang.Date的超类中,并且nanos提供所有其余的时间。 – Richard 2009-02-24 16:34:24
@mmyers:我正在研究一个,但我希望有人有一个可行的例子来拯救我可怜的大脑......但是我应该猜到,没有人在谷歌没有关闭任何东西的时候,但是t1.getTime() - t2 .getTime() – 2009-02-24 16:46:17