Alternatively, if you don't want to use JodaTime, it's pretty simple to compute the hours, minutes, and seconds from a duration in milliseconds:
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date start = sdf.parse("00:44:16");
Date end = sdf.parse("04:02:39");
long durationMs = end.getTime() - start.getTime();
final int oneHourMs = 3600000;
final int oneMinuteMs = 60000;
final int oneSecondMs = 1000;
long hours = durationMs / oneHourMs;
long minutes = (durationMs % oneHourMs) / oneMinuteMs;
long seconds = (durationMs % oneMinuteMs) / oneSecondMs;
System.out.format("%02d:%02d:%02d", hours, minutes, seconds);
// outputs: 03:18:23
}