Converter milisegundos para HH:mm

Como faco para mostrar minha diferença de horas recuperada em milisegundos em HH:mm?

Meu codigo atual até converte, mas dá uma diferença de 3 hrs.

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); GregorianCalendar gregorianCalendar = new GregorianCalendar(); gregorianCalendar.setTimeInMillis(getDateDiffMillis()); gregorianCalendar.set(Calendar.ZONE_OFFSET, 0); return sdf.format(gregorianCalendar.getTime());

Já troquei o ZONE_OFFSET pra +3, -3, 0, e nada.

To pensando aqui se essa diferença ultrapassar 24 hs… O codigo nao serve mais.

Alguem sabe como faz isso?

Usando o sinal de dividir?

long timeInMillis = getDateDiffMillis() / 1000; //Pegamos em segundos int seconds = timeInMillis % 60 timeInMillis = time / 60 int minutes = timeInMillis % 60 int hours = time / 60

É que eu queria saber um jeito mais bonito. Sem ser na mao. :slight_smile:

A porcaria da API de tempo do Java não tem o conceito de duração. Só de data.

A solução para fazer bonito é usar uma API decente, como a Joda-time:
http://joda-time.sourceforge.net/

Aí você pode deixar bonito assim:

LocalTime start = new LocalTime("10:00:00");
LocalTime end   = new LocalTime("11:30:00");
Period period   = new Period(start, end);

System.out.println("Entre as duas datas há: " + period.getDays() + " dias,  " 
    + period.getHours() + " horas "
    + period.getMinutes() + " minutos.");

excelent!!!

Irei testar.

Obrigado!

Cara excelente mesmo. Veja soh:

Period period = new Period(getDataHoraInicio().getTime(), getDataHoraFim().getTime()); PeriodFormatter periodFormatter = new PeriodFormatterBuilder().printZeroAlways().appendWeeks().appendSuffix( " semana", " semanas").appendSeparator(", ").appendDays().appendSuffix(" dia", " dias") .appendSeparator(", ").minimumPrintedDigits(2).appendHours().appendSeparator(":").appendMinutes() .appendSeparator(":").appendSeconds().toFormatter(); return periodFormatter.print(period);

Isso consegue imprimir por exemplo:

0 semanas, 1 dia, 02:55:00

Obrigado mais uma vez ViniGodoy.

Essa API é excelente. Depois dela, nunca mais vc vai querer usar o Calendar.

Não é a toa que ela já virou JSR e é bem votada para ser parte integrante do Java nas futuras versões.

Parabéns, muito bom!!