favor incluya los nanos, de lo contrario sería trivial:¿Cómo calcular la diferencia entre dos Java java.sql.Timestamps?
long diff = Math.abs(t1.getTime() - t2.getTime());
[EDIT] Quiero que el resultado más preciso, por lo que no se duplica; solo aritmética entera/larga. Además, el resultado debe ser positivo. código Pseudo:
Timestamp result = abs (t1 - t2);
Ejemplos:
t1 = (time=1001, nanos=1000000), t2 = (time=999, nanos=999000000)
-> diff = (time=2, nanos=2000000)
Sí, milisegundos en java.sql.Timestamp se duplican en el tiempo y la nanos par, por lo que 1001 milisegundos significa 1 segundo (1000) y 1 milli que está en la parte time
y la parte nanos
porque 1 milisegundo = 1000000 nanosegundos). Esto es mucho más tortuoso de lo que parece.
me sugieren no enviar una respuesta sin llegar a probar el código o tener un ejemplo de código de trabajo listo :)
Así ¿tiene una solución que va a publicar si nadie la obtiene? –
De acuerdo con los comentarios en el código fuente de Timestamp, la parte millis no está realmente duplicada en los nanos. En cambio, solo hasta los segundos se almacenan en la superclase de java.lang.Date, y los nanos proporcionan el resto del tiempo. – Richard
@mmyers: Estaba trabajando en uno, pero esperaba que alguien tuviera un ejemplo de trabajo que salve mi pobre cerebro ... pero debería haber supuesto que nadie tiene cuando Google no contestó nada, pero t1.getTime() - t2 .getTime() –