Java SimpleDateFormat: godzina zła

Nie potrzebuję całej historii, aby wyjaśnić moje pytanie, więc po prostu pokażę kod (który jest tylko przykładem). Dlaczego jest różnica w moim wyniku?

Kod

long millis = 2305293L;
System.out.println(
    millis + "ms = " + 
    (millis / 1000) + "s = " + 
    (millis / 1000 / 60) + "m");
System.out.println(
    new SimpleDateFormat("HH:mm:ss").
    format(
        new Date(millis)
        )
    );

Wydajność

2305293ms = 2305s = 38m
01:38:25

questionAnswers(2)

yourAnswerToTheQuestion