Conversão de Datas

11 respostas
malves_info

Galera , tenho uma Data amarzenada no meu objeto Date, ao chamar o método getTime() ele me retorna essa data em forma Long “milesegundos”, gostaria de saber como converter para o formato normal de hora ex.: Long “[telefone removido]” para String(hora) “08:23:05”. Primeira vez que trabalho com esta classe.

[]'s

11 Respostas

X

da uma olhada na documentação:

no método setTime(long a);

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Date.html

E para converter para String procura por SimpleDateFormat

abraços

shoko

A classe tem o método setTime, que você pode setar a mesma e depois formatar ela utilizando classes como SimpleDateFormat

Olha cara o que você pode fazer também para poder fazer calculos com essas datas é criar uma classe de conversão, visto que voce tem o horario em milissegundos.

R

Tenta com o métodos abaixo.

// retorna data formatada hh:mm:ss
	public static String getFormatedHora(Calendar cal) {
		SimpleDateFormat s = new SimpleDateFormat("HH:mm:ss");
		return s.format(cal.getTime());
	}
malves_info

Continuo com duvidas utilizei o SimpleDateFormat, fiz a conversão como mostra abaixo:

DateFormat date = new SimpleDateFormat("HH:mm:ss");
				System.out.println("Formato Long: " + report.getDataInicial().getTime() + " Formatada: " + date.format(report.getDataInicial().getTime()));

ele imprime o seguinte:
Formato Long: “[telefone removido] Formatada: 23:08:50”, Mas a representação long de “[telefone removido]” equivale a “08:27:40” e não a “23:08:50”.

:shock:

shoko

Cara eu fiz aqui um exemplo pegando a hora atual, deu certo.

Date date1 = new Date();

		long l = date1.getTime();

		DateFormat date = new SimpleDateFormat("HH:mm:ss");
		System.out.println("Formato Long: " + l + " Formatada: "
				+ date.format(l));
X

Você não precisa converter para milisegundos para converter para String.

Pode pular esta etapa e coverter Date para String

tenta assim:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String saida = sdf.format(report.getDataInicial()); System.out.println(DATA:+saida);

O

Só complementando, não sei como vc fez o cálculo pra chegar a 08:27:40, mas [telefone removido] representa sim 23:08:50 no TimeZone GMT-03:00, e mesmo em outros TimeZones (até onde eu sei) só o que mudaria é a hora, já que eles fazem o papel do fuso-horário.

malves_info

Resolvido…

public String getHour(long tempo){
		
        DateFormat date = new SimpleDateFormat("HH:mm:ss");
        String hora = date.format(tempo * 1000L);
        
        return hora;
	}

Vlw pela ajuda de todos

O

Brother, tua solução tá errada. Se tu precisa formartar uma data a partir de um Date a solução já foi dada pelo xxta, se for a partir do tempo em milisegundos (que é o caso postado por você), não precisa multiplicar por nada.

malves_info

Me apareceu uma outra duvida, agora preciso converter por exemplo: “29/07/2008 16:46:00” em long , com eu faria?

O
String s = "29/07/2008 16:46:00";

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date data = sdf.parse(s);
long time = data.getTime();
Criado 29 de julho de 2008
Ultima resposta 30 de jul. de 2008
Respostas 11
Participantes 5