Converter data do select

10 respostas
R

Boa tarde,

Tenho minha tela de consulta lote onde tenho a data de vencimento, a consulta está ok, entretanto a data está no padrao americano aaaa-mm-dd
Estou usando o sqlserver, no pacote modelo meu atributo data_validade é do tipo Date,
Como vou converter para o padrão brasileiro no DAO?

public Vector LoteFab(String stt) throws SQLException {
        con = new Conexao();
        lot = null;
        Vector dados = new Vector();
        PreparedStatement pstmt =
                con.getConexao().prepareStatement("select  p.pro_nome, l.* from lote l , produto p where p.pro_codigo = l.pro_codigo and l.lot_fabricante like '%" + stt + "%'");
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
         
            lot = new Lote();
            prod = new Produto();
            prod.setNome(rs.getString("pro_nome").trim());
            lot.setCodigo(rs.getInt("lot_codigo"));
            lot.setProduto(rs.getInt("pro_codigo"));
            lot.setLote_fabricante(rs.getString("lot_fabricante").trim());
            //aqui
            lot.setData_validade(rs.getDate("lot_data_validade"));
            //acima
            lot.setQuantidade(rs.getInt("lot_quantidade"));
            lot.setPreco(rs.getDouble("lot_preco_venda"));
            lot.setStatus(rs.getString("lot_status").trim());
            
            Vector novalinha = new Vector();
            novalinha.addElement(lot.getCodigo());
            novalinha.addElement(lot.getProduto() + " - " + prod.getNome());
            novalinha.addElement(lot.getLote_fabricante());
            novalinha.addElement(lot.getData_validade());
            novalinha.addElement(lot.getQuantidade());
            novalinha.addElement(lot.getPreco());
            novalinha.addElement(lot.getStatus());
            dados.addElement(novalinha);
        }
        return dados;
    }

Coloquei o metodo da classe DAO completo, alguem poderia dar uma ajuda na conversão da data??

10 Respostas

surfzera

DateFormat df = new DateFormat(“dd”/MM/yyyy);
df.format(seuvalor);

Eric_Yuzo

DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); df.format(seuvalor);
Instancie a classe SimpleDateFormat, pois DateFormat é uma classe abstrata.

R

Boa tarde, então tentei dessa maneira ai mais não acontece nada,
tambem tentei desta maneira e nada

lot.setData_validade(rs.getDate("lot_data_validade")); //acima lot.setQuantidade(rs.getInt("lot_quantidade")); lot.setPreco(rs.getDouble("lot_preco_venda")); lot.setStatus(rs.getString("lot_status").trim()); SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy"); DateFormat df = DateFormat.getDateInstance(); Vector novalinha = new Vector(); novalinha.addElement(lot.getCodigo()); novalinha.addElement(lot.getProduto() + " - " + prod.getNome()); novalinha.addElement(formato.format(lot.getData_validade()));

Eric_Yuzo

Deveria funcionar.

DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); System.out.println(df.format(new Date()));
Como você está fazendo para exibir a data?

R

Então eu testei aqui usando um JOptionPane e deu certo mais na hora dele exibir no Jpanel ele exebi o padrao americano, vou ver o que ta errado aqui,

R

Testei aqui, na mensgaem do JOptionPane ele existe dd/mm/yyyy
já no jtable ele exibe yyyy…

SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
           JOptionPane.showMessageDialog(null, formato.format(new Date(formato.format(lot.getData_validade()))));
            Vector novalinha = new Vector();
            novalinha.addElement(lot.getCodigo());
            novalinha.addElement(lot.getProduto() + " - " + prod.getNome());
            novalinha.addElement(formato.format(new Date(formato.format(lot.getData_validade()))));
Eric_Yuzo

Para exibir a data formatada no seu JTable, você pode usar o DateFormat para formatar a data no seu TableModel, no método “getValueAt”.

Pelo jeito que está carregando um Vector, deve estar usando DefaultTableModel. Não é uma boa por n motivos que você já deve ter visto aqui no fórum mesmo.

Já tentou implementar um TableModel para sua classe Lote?

surfzera

perdao era SimpleDateFormat que eu queria colocar … valeu!

Eric_Yuzo

Deixe eu corrigir o que eu falei antes também, hehe.

Implementando seu TableModel, você declara o tipo Date para a coluna que vai apresentar a data(isso é feito no método getColumnClass). Dessa forma não precisa nem se preocupar em formatar a data, que o JTable faz o trabalho para você.

R

Ja tentei também, acredito que o erro esteva da data, vou testar em outros pc dps.

Criado 29 de novembro de 2010
Ultima resposta 29 de nov. de 2010
Respostas 10
Participantes 3