Różnica czasu w Javie [duplikat]

To pytanie ma już tutaj odpowiedź:

Jak zmierzyć czas, jaki upłynął w Javie? [duplikować] 15 odpowiedzi

Dlaczego wynik kodu Java poniżej jest 04:18:23, a nie 03:18:23?

public static void main(String[] args) {
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    try {
        Date start = sdf.parse("00:44:16");
        Date end = sdf.parse("04:02:39");
        long duration = end.getTime() - start.getTime();
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(duration);
        System.out.println(sdf.format(cal.getTime()));
    } catch (ParseException e) {
        e.printStackTrace();
    }
}

questionAnswers(3)

yourAnswerToTheQuestion