Problemas com Diff de Horas com Calendar

Estou implementando uma espécie de conometro de prova , no momento que usuário acessa o questionário é disparada uma thread uma espécie de conometro qndo o usuário click em responder a thread é morta
E tempo que ele gastou crio um objeto Calendar
Prq existe um tempo limite para ele responder o questionário

Meu calculo é bem simples tempo limite - tempo que ele gastou


long diferencaHoras =  tempoLimite.getTimeInMillis() - conometro.getTimeInMillis();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(diferencaHoras);

Mas está saindo um resultado muito estranho:
Por exemplo se o tempo limite dele é de 1 hora em responder o questionário ele gastou 1/2 hora sobraria 1/2 hora de saldo em responde outro questionário mas o resultado sai isso :

09:30:00 

Não entendi prq ele adicionou nove horas …

Você deseja trabalhar apenas com horas, mas o Java não possui classes que representem esse conceito. Tente usar o Joda-Time que possui uma classe LocalTime que é o que você procura.