@SteveB: это становится лучше с каждой минутой;)

уйста, включите нанос, иначе это будет тривиально:

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 наносекунд). Это гораздо хитрее, чем кажется.

Я предлагаю не публиковать ответ, не протестировав код или не подготовив образец рабочего кода :)

Ответы на вопрос(5)

Ваш ответ на вопрос