API Calendar

Prezados,

Preciso formatar uma data, porem não desejo retornar o dado como string e sim como data novamente.
Como faço isso?
Formatar pra retornar em string é moleza, mas não encontrei em lugar nenhum como fazer pra continuar com o tipo original do dado.

[]s
Kil

hummmmmm meio confusa sua perguntas mas não seria isso :

Calendar cal = cal.getInstance();
cal.getTime();

SimpleDateFormat faz isso

o metodo parse retorna String
o metodo format retorna um Date

[]'s

A classe Date independente de formatação tera sempre seu formato. A unica coisa que voce pode formatar é a exibição que nesse caso é apenas para String mesmo.

Oi Pessoal,

Desculpem se a questão foi confusa.

Estou usando a API Calendar, pois com a mesma eu consigo forçar valores, como no exemplo abaixo:

    Calendar startDate = Calendar.getInstance();
    startDate.set(Calendar.HOUR_OF_DAY, 0);
    startDate.set(Calendar.MINUTE, 0);
    startDate.set(Calendar.SECOND, 0);

Não sei fazer isso na API Date.

Desculpem a minha ignorância, mas pelo que sei o SimpleDateFormat não retorna um tipo Date específicamente. Pelo menos fazendo a formatação na forma que conheço. Segue abaixo:

        Date hoje = new Date(); 
        Date formatada = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd"); 
        formatada = formatter.format(hoje);

Seria isso? Porque isso não me atende. A última linha não é aceita. Tipos incompatíveis…

“Error(86,41): incompatibles types; found: java.lang.String, required java.util.Date”

O meu problema todo é que trabalho com um produto que tem uma API própria, e o método que preciso só aceita o tipo Date, até aí tudo bem. A questão é que ele compara em formatos diferentes e acaba não trazendo o resultado correto.

Exemplo: Ele compara “2009-05-27 00:00:00.0” com “Tue May 27 00:00:00 BRT 2009”

Alguém tem uma luz!?!?

[]s
Kil

[quote=jackil]Oi Pessoal,

Desculpem se a questão foi confusa.

Estou usando a API Calendar, pois com a mesma eu consigo forçar valores, como no exemplo abaixo:

    Calendar startDate = Calendar.getInstance();
    startDate.set(Calendar.HOUR_OF_DAY, 0);
    startDate.set(Calendar.MINUTE, 0);
    startDate.set(Calendar.SECOND, 0);

Não sei fazer isso na API Date.

Desculpem a minha ignorância, mas pelo que sei o SimpleDateFormat não retorna um tipo Date específicamente. Pelo menos fazendo a formatação na forma que conheço. Segue abaixo:

        Date hoje = new Date(); 
        Date formatada = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd"); 
        formatada = formatter.format(hoje);

Seria isso? Porque isso não me atende. A última linha não é aceita. Tipos incompatíveis…

“Error(86,41): incompatibles types; found: java.lang.String, required java.util.Date”

O meu problema todo é que trabalho com um produto que tem uma API própria, e o método que preciso só aceita o tipo Date, até aí tudo bem. A questão é que ele compara em formatos diferentes e acaba não trazendo o resultado correto.

Exemplo: Ele compara “2009-05-27 00:00:00.0” com “Tue May 27 00:00:00 BRT 2009”

Alguém tem uma luz!?!?

[]s
Kil[/quote]

O problema esta aqui

 formatada = formatter.format(hoje);

você esta atribuindo o retorno da formatação que é String a um tipo Date.

Exemplo: Ele compara “2009-05-27 00:00:00.0” com “Tue May 27 00:00:00 BRT 2009”

mas isso acima é do tipo DATE -> (2009-05-27 00:00:00.0) ??? que api é essa ?

O que voce quer fazer? De uma String ter a Date? O método parse do SimpleDateFormatter faz isso.

Mas eu acho mais interessante usar Calendar ou então usar uma API para datas e horarios mais inteligente como o Joda Time

Oi pessoal,

Encontrei um método na API do produto que me atende.

Mas valeu pela sugestão da API Joda Time, não a conheço mas vou estuda-la.

Thanks
Kil

[quote=Felagund]SimpleDateFormat faz isso

o metodo parse retorna String
o metodo format retorna um Date

[]'s[/quote]
Só complementando o que o amigo Felagund disse, não se esqueça de especificar o formato da data em ambos os métodos.

Só corrigindo também… Agora que eu vi… o parse retorna Date e o format retorna String.