Dúvida com SimpleDateFormat

10 respostas
S

Bom dia pessoal,
Estou com dúvida no seguinte trecho do código.

data = new SimpleDateFormat("dd/MM/yyyy").format(new Date (contato.getData().getTimeInMillis()));

e não assim, sem o new Date(),

data = new SimpleDateFormat("dd/MM/yyyy").format(contato.getData().getTimeInMillis());

10 Respostas

drsmachado

Qual a dúvida?
Ta dando erro?

S

Não está dando erro !
Minha dúvida é, porque que não posso passar o contato.getData().getTimeInMillis() diretamente como argumento do format, sem precisar criar um novo objeto Date.

ViniGodoy

O melhor é assim:

data = new SimpleDateFormat("dd/MM/yyyy").format(contato.getData());

Você fazer:

new Date(umaData.getTimeInMillis());

É uma operação idiota, pois a data criado com o new será idêntica a umaData.

drsmachado

Assim fica mais claro.
Primeiro, boa pedida é ler a documentação.
Como você deve saber, um objeto de uma classe X vai receber como parâmetros o tipo específico de primitivo ou objeto que este método suporta.
Não faz sentido querer passar maçãs para um método que suporta apenas laranjas.
O método construtor da classe SimpleDateFormat não aceita a informação em milissegundos.

S

[quote=ViniGodoy]O melhor é assim:

data = new SimpleDateFormat("dd/MM/yyyy").format(contato.getData());

Tentei fazer assim e da IllegalArgumentException.

drsmachado

Qual o retorno do método getData()?
Precisa verificar isto.

S

Me retorna um Calendar.

ViniGodoy

Se o retorno for um calendar, a conversão ocorre pq o FormatDate, por algum motivo que desconheço, não aceita Calendars (embora a Sun implore para vc usar Calendar no lugar de Dates).

Aí só convertendo desse jeito mesmo.

ViniGodoy

Com Calendar, a melhor opção é fazer assim:

data = new SimpleDateFormat("dd/MM/yyyy").format(contato.getData().getTime());
S

Obrigado pessoal pela ajuda, consegui resolver assim tbm.

data = new SimpleDateFormat("dd/MM/yyyy").format(contato.getData().getTimeInMillis());
Criado 31 de janeiro de 2011
Ultima resposta 31 de jan. de 2011
Respostas 10
Participantes 3