¿Cómo calcular la diferencia entre dos Java java.sql.Timestamps?

Incluya los nanos, de lo contrario sería trivial:

long diff = Math.abs(t1.getTime () - t2.getTime ());

[EDITAR] Quiero el resultado más preciso, por lo que no hay dobles; solo entero / aritmética larga. Además, el resultado debe ser positivo. Pseudocódigo:

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 en el par nanos, por lo que 1001 milisegundos significa 1 segundo (1000) y 1 mili que está en latime parte y lananos parte porque 1 milisegundo = 1000000 nanosegundos). Esto es mucho más tortuoso de lo que parece.

Sugiero no publicar una respuesta sin probar el código o tener una muestra de código de trabajo lista:)

Respuestas a la pregunta(5)

Su respuesta a la pregunta