Diferença de Times

Pessoal, estou com o seguinte problema, quando inicio o servidor, armazeno no ServletContext um atributo com o System.currentTimeMillis() que guarda o horario atual de inicialização do container, em uma tela de monitoramento, gostaria de exibir o total de tempo total de execução, então pego a direfença entre o horario que armazenei e o horario que estava no ServletContext:

Date startupTime = (Date) request.getSession().getServletContext().getAttribute("startupTime");
		long totalTime = System.currentTimeMillis() - startupTime.getTime();

Como exibir o valor de totalTime no formato:
dd/MM/yyyy HH:mm:ss ?

A diferença entre tempos é um número em milissegundos que é uma duração, não uma data.
Você poderia mostrá-lo no formato “12 dias, 14 horas, 20 minutos e 30 segundos” - nesse ponto basta fazer as contas adequadas.
(Se quiser usar esse valor direto para setar uma variável do tipo java.util.Date, você vai ter uma surpresa desagradável - é que 0 segundos = 1/1/1970 em GMT+00, ou seja, 31/12/1969 21:00:00 em GMT-03 que é o Brasil. Mesmo usando um DateFormat que mostre só horas, minutos e segundos, o problema do TimeZone é que vai lhe mostrar algo com 3 horas de diferença.)
Exemplo:

long t = 1000L * (4 * 3600 + 12 * 60 + 7); // você queria ver “04:12:07”
Date dt = new Date (t); // não deveria fazer isto porque t é uma duração, não uma data
DateFormat df = new SimpleDateFormat (“hh:mm:ss”);
System.out.println (df.format (dt)); // em vez de mostrar “04:12:07” deve mostrar algo como “01:12:07”

cara…verifique os links abaixo…

http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

http://www.guj.com.br/jforum.java?module=search&action=search&clean=1&search_keywords=SimpleDateFormat

http://www.guj.com.br/java.tutorial.artigo.8.1.guj

http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html#setLenient(boolean

ups…não tinha visto o post do thingol…

e tambem não tinha pensado nisso !! :oops:

mal ae