Várias formas…uma delasseria criar um java.text.SimpleDateFormat e usar o getTime do java.util.Date, algo maais ou - assim:
try{
SimpleDateFormat df = new SimpleDateFormat ("dd/MM/yyyy hh:mm:ss");
Date data1 = df.parse("suaData"); e mesmo com data2
passando a um metódo:
retornarHorasDeDiferenca(data1,data2));
}catch(java.text.ParseException parse){
parse.printStackTrace();
}
e no seu método retornarHorasDeDiferenca:
private long retornarHorasDeDiferenca(Date dtInic, Date dtFim){
return (dtFim.getTime() - dtInic.getTime()) / (10006060);
}
Vc não quer formatar uma hora (um tempo) vc quer formatar um intervalo de tempo. Como seu objectivo é formatar um intervalo vc pode criar o seu proprio Formater pois a formação resume-se a dividir por 60 cada uma das partes. Se vc suar Date ou Calendar eles vão intrepretar os milisegundos como decorrentes a apartir do inicio da epoca do java e vc terá que despresar os anos. Supondo que no seu caso isso não é um problema então a solução é fazer:
Calendar c = Calendar.getInstance();
c.setTimeMiliseconds(tempo);
String formatado = (new SimpleDateFormater ("HH:mm:ss")).format(c.getTime())