Podpowiem Ci trochę, dalej sam kombinuj,
getHours() - zwraca wartość od 0 do 23, jako liczba całkowita. A Ty w każdym przypadku dodajesz tą samą liczbę (dla Tokio dodajesz 8). A więc 16 + 8 = 24.
Tutaj leży błąd.
Bo, później będziesz miał 25:00:00, 26:00:00