Trazer data formatada

Pessoal, quero trazer a data formatada do banco para dd/MM/yyyy
Eu consigo cadastrar no formato Brasileiro de boa, mas pra trazer nao!

ai estou tentando fazer isso no resultset numa classe DAO e da este erro

java.lang.IllegalArgumentException: Cannot format given Object as a Date

 [code]public List<CadNotaFiscal> getLista(String numero_nf) throws SQLException
 {
    String sql = "select * from cad_nf where numero_nf like ?";
    PreparedStatement stmt = this.conexao.prepareStatement(sql);
    stmt.setString(1, numero_nf);
    ResultSet rs = stmt.executeQuery();

    List<CadNotaFiscal> minhaLista3 = new ArrayList<CadNotaFiscal>();

    SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy");

    while (rs.next())
    {
        CadNotaFiscal cnf = new CadNotaFiscal();

        //cnf.setVencimento(rs.getDate("vencimento")); //Desse jeito traz o resultado OK, mas no formato yyyy-MM-dd         
        cnf.setVencimento((Date.valueOf(f.format("vencimento")))); //Aqui onde eu tento q da o erro

        minhaLista3.add(cnf);
    }

    rs.close();
    stmt.close();
    return minhaLista3;
}[/code]

Agradeço a ajuda

Modifique a linha:

cnf.setVencimento((Date.valueOf(f.format("vencimento")))); 

para

cnf.setVencimento((Date.valueOf(f.format(new java.util.Date(rs.getDate("vencimento").getTime()))))); 

que vai funcionar.

[]´s

agora me trouxe este erro

java.lang.IllegalArgumentException

[quote=rafa120]agora me trouxe este erro

java.lang.IllegalArgumentException
[/quote]

Ops, minha falha. Editei a linha ali em cima.

[]´s

hmm da o mesmo erro
pq será?

faz tempo que estou batalhando nisso, ta complicado

[quote=rafa120]hmm da o mesmo erro
pq será?

faz tempo que estou batalhando nisso, ta complicado[/quote]

Por acaso, há chance do resultset estar retornando esta linha como null ? Em outras palavras, este campo está como not null no BD ?

[]´s

Esta como null

Já tem sua resposta… não pode passar null para o método format.

[]´s

hmm…vou modificar algumas coisas aqui entao e testar e ja respondo

pq eu fiz um metodo que se a pessoa nao digitar nada, recebe null

mesmo erro, rss

:frowning:

Retirei null do banco, e retirei null no metodo… mas nada ainda :frowning:

Bom, estou tentando tratar isso nesta classe, que é uma classe DAO (só sql)
nao aponta nenhum erro

ai quando executo outra classe que é um formulario ele roda, mas ai qdo clico no pesquisar… ai gera este erro

sera que é realmente nesta classe q eu preciso tratar isso?

Fala…

na classe DAO, vc só deve dar o set normal da data, sem nenhuma formatação de data com SimpleDateFormat…
Na classe DAO preocupe-se apenas em colocar os valores corretos em cada atributo…
Agora na camada de apresentação vc formata a data com o SimpleDateFormat, método format e deve funcionar corretamente…

Galera

Obrigado pela ajuda

realmente na classe DAO nao se pode fazer
tentei novamente no formulário, onde traz os dados para a tabela e consegui

Ai deu erro de objeto, mas como o asaudate disse, format nao serve para null… entao é só arruma isso
é muito fácil, porém eu só demorei pq nao estava sabendo o local correta pra colocar a formatacao

SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy"); txtEmissao.setText(String.valueOf(f.format(notasf.get(tabela.getSelectedRow()).getEmissao())));