Calcular diferenças entre horas

meu metodo é esse

[code] public static void main(String[] args) {
try {
Calendar data = Calendar.getInstance();

        long ini = data.getTimeInMillis();

        Thread.sleep(100 * 60);
        Calendar data2 = Calendar.getInstance();
        long fim = data2.getTimeInMillis();

        System.out.println("resultado da subtração é: " + (fim - ini));

        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");

        System.out.println(fim + " - " + ini);

        System.out.println(sdf.format(fim) + " - " + sdf.format(ini));

        System.out.println("formatado: " + sdf.format((fim - ini)));
    } catch (Exception e) {
        e.printStackTrace();
    }
}[/code]

e a saída da diferença é

09:00:06

mas quero que saia somente
00:00:06

oque me sugerem…
abraços

resolvido dessa maneira

[code]public static void main(String[] args) throws Exception {

try {
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.S");
		long start = Calendar.getInstance().getTimeInMillis();

		Thread.sleep(1000 * 5);

		long stop = Calendar.getInstance().getTimeInMillis();

		long time = stop - start;

		Calendar cal = Calendar.getInstance();

		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MILLISECOND, 0);

		cal.add(Calendar.SECOND, Integer.parseInt("" + (time / 1000)));

		java.lang.System.out.println("HORA CERTA: " + sdf.format(cal.getTime()));
	} catch (Exception e) {

	}

}[/code]

vlw

Pensando numa maneira simples de realizar isso seria criar um novo SimpleDateFormat com um pattern de apenas os segundos para formatar apenas o resultado

 public static void main(String[] args) {
        try {
            Calendar data = Calendar.getInstance();

            long ini = data.getTimeInMillis();

            Thread.sleep(100 * 60);
            Calendar data2 = Calendar.getInstance();
            long fim = data2.getTimeInMillis();

            System.out.println("resultado da subtração é: " + (fim - ini));

            SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
            SimpleDateFormat sdfResultado = new SimpleDateFormat("ss");

            System.out.println(fim + " - " + ini);

            System.out.println(sdf.format(fim) + " - " + sdf.format(ini));

            System.out.println("formatado: " + sdfResultado .format((fim - ini)));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Eu só não entendi o porque que a saída é essa

08:29:25 - 08:29:19
formatado: 09:00:06

porque 08:29:25 - 08:29:19 devia ser 00:00:06 e não 09:00:06 oO

[]s

voce viu que eu seto um calendar com as datas zeradas na maneira qeu eu disse que deu certo…
é por que o calendario nao do java nao é 100% “redondinho” tem suas imperfeições eu acredito.
entao depois que eu zero ele funciona
mas e não me adiantaria ter somente os minutos
pois o sleep nunca sera o mesmo
pode aumentar e tenho que calcular horas e minutos
blz!

Ou voc pode usar esta formatação:

	DateFormat df = DateFormat.getTimeInstance(DateFormat.MEDIUM);
 	df.setTimeZone(TimeZone.getTimeZone("GMT")); 

http://www.guj.com.br/posts/list/119055.java#645284

Que estranho isso…