Не слишком сложно ... Используйте класс Interval в Joda-Time 2.3.
Пример кода в Java 7 ...
// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
// A good practice is to specify your time zone rather than rely on default.
org.joda.time.DateTimeZone californiaTimeZone = org.joda.time.DateTimeZone.forID("America/Los_Angeles");
// Now.
org.joda.time.DateTime now = new org.joda.time.DateTime(californiaTimeZone);
// Wait a moment.
try {
java.util.concurrent.TimeUnit.MILLISECONDS.sleep(3500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Later.
org.joda.time.DateTime aMomentLater = new org.joda.time.DateTime(californiaTimeZone);
// Elapsed.
org.joda.time.Interval interval = new org.joda.time.Interval(now, aMomentLater);
long milliseconds = interval.toDurationMillis();
double seconds = ((double)milliseconds/1000);
// Display
System.out.println("Elapsed: " + seconds + " seconds. (" + milliseconds + " milliseconds)");
При запуске ...
Elapsed: 3.533 seconds. (3533 milliseconds)
В качестве способа удобства ...
double elapsedSeconds(org.joda.time.DateTime start, org.joda.time.DateTime stop)
{
org.joda.time.Interval interval = new org.joda.time.Interval(start, stop);
long milliseconds = interval.toDurationMillis();
double seconds = ((double)milliseconds/1000);
return seconds;
}
Пример использования ...
System.out.println("Calculating Elapsed: " + myObject.elapsedSeconds(now, aMomentLater));
У меня была аналогичная проблема с JodaTime. Короткий ответ: Нет, нет «простого» способа получить дробные секунды. – user1567896