As commented by David Wallace, you should look at the question Calculating the Difference Between Two Java Date Instances. And search for other questions with "joda" and "interval".
Joda-Time 2.3 is an open-source library for handling date-time calculations. Joda-Time has inspired the creation of the java.time.* classes being built into Java 8.
As discussed in the doc, Joda-Time offers the Interval class for exactly your needs: Handling a pair of start-stop dates in an intelligent manner, savvy with time zones and Daylight Savings Time (DST) and other anomalies.
DateTime now = DateTime.now( DateTimeZone.forID( "Europe/Paris" ) ); // Current moment in Paris.
Interval interval = new Interval( now, now.plusHours( 8 ) );
To describe the time span (elapsed), see the Period and Duration classes. They can describe the years-months-days-hours-minutes-seconds in human language (French, English, etc.). They can describe the span in ISO 8601 format of PnYnMnDTnHnMnS.
Further tips…
For representing a single moment in time, use the DateTime class.
When necessary to interact with other classes that know only java.util.Date, call the toDate
method.
Note that you should avoid using the java.util.Date/Calendar classes, as they are badly designed and implemented. Java 8 will supplant them with the java.time.* classes mentioned above.