preciso mostrar no meu jTextField os dados vindo do meu banco (mysql), que esta aparecendo no formato yyyy-MM-dd. Eu quero que apareça no nosso formato dd/MM/yyyy
antes de mais nada, utilizo já o new SimpleDateFormat(“dd/MM/yyyy”) para gravar no banco e tal.
um exemplo utilizando valor numérico com virgula abaixo. Aqui eu troco o ponto (.) para a virgula (,) … só que agora eu quero converter a Data!
o codigo abaixo sao os registros mostrados no jTable e jogados no jTextField
[code]
private void jTTabelaLinhaSelecionada(JTable tabela)
{
if (tabela.getSelectedRow() != -1)
{
txtValorContrato.setText(String.valueOf(contratos.get(tabela.getSelectedRow()).getValor_contrato()).replace(".", “,”)); //Exemplo da conversao do tipo float
txtCadastro.setText(String.valueOf(contratos.get(tabela.getSelectedRow()).getCadastro())); //Data - Já tentei a conversão aqui nesta linha, mas nao consegui
}
else
{
return;
}
}[/code]
UMC, não é bem isso que eu quero. Estas conversões de date eu utilizo no meu sistema todo.
só que agora eu quero a conversao para trazer do banco. só nao estou sabendo onde colocar e a forma correta
Você deve usar o SimpleDateFormat para jogar a data no formato correto no seu JTextField, e para fazer parse do que foi digitado pelo usuário para Date.
O que você não precisa é usa-lo para gravar dados no banco.
[quote=ViniGodoy]Você deve usar o SimpleDateFormat para jogar a data no formato correto no seu JTextField, e para fazer parse do que foi digitado pelo usuário para Date.
O que você não precisa é usa-lo para gravar dados no banco.[/quote]
Você deve usar o SimpleDateFormat para jogar a data no formato correto no seu JTextField, e para fazer parse do que foi digitado pelo usuário para Date. Ok, é isso que faço. O jtextfield recebe 19/04/2010 e no banco aparece 2010-04-19
O que você não precisa é usa-lo para gravar dados no banco. Nao entendi isso
Justamente, eu sei que é preciso converter a data do bd
maaas eu nao estou sabendo onde eu coloco a formatação
por isso postei aquele codigo pra ver se é ali que pode ser feita a conversão
SimpleDateFormat formatdata = new SimpleDateFormat(“dd/MM/yyyy”);//15/04/2010
//SimpleDateFormat formatdata = new SimpleDateFormat(“MM/dd/yyyy”);//04/15/2010
//SimpleDateFormat formatdata = new SimpleDateFormat(“yyyy/MM/dd”);//2010/04/15
//SimpleDateFormat formatdata = new SimpleDateFormat(“dd-MM-yyyy”);//15-04-2010
vini, utilizo desse jeito mesmo, usando PreparedStatement
mas desculpa ser insistente nisso, mas ainda acho que vcs nao entenderam, ou eu que nao estou entendendo kkkk
Olha, eu sei de tudo isso que vcs postaram… tanto é que em todo meu codigo eu tenho estas conversões e funciona normalmente
Vcs endenderam perfeitamente que eu quero trazer a data formatada pro textfield, sim é isso!
maaass nao sei em qual parte do meu codigo eu preciso colocar esta conversao!
se é na parte que vem os dados pela tabela (jTable)
ou se é em alguma outra parte
na verdade, acho que essa dúvida ta sendo mais de compreensão do codigo mesmo, para saber onde utilizar
eu utilizo defaulttablemodel kkk nao me xingue!
ja li sua assinatura, vários topicos sobre isso. Vou mudar a estrutura da tabela sim, mas depois do meu tcc…estou correndo contra o tempo e se alterar um, tem que alterar todos e tem muita coisa.
segue partes do codigo
DefaultTableModel tmContrato = new DefaultTableModel(null, new String[]{"Obra", "N. Contrato", "Contratada", "Serviço"});
private void mostraPesquisa (List<CadContrato> contratos) {
while(tmContrato.getRowCount()>0)
{
tmContrato.setRowCount(0); //setRowCount(0); //removeRow(0);
}
if (contratos.size()== 0)
{
JOptionPane.showMessageDialog(this, "Nenhum contrato encontrado", "Erro", JOptionPane.ERROR_MESSAGE);
}
else
{
String[] linha = new String [] {null, null, null, null};
for (int i = 0; i < contratos.size(); i++)
{
tmContrato.addRow(linha);
tmContrato.setValueAt(contratos.get(i).getObra(), i, 0);
tmContrato.setValueAt(contratos.get(i).getId_contrato(), i, 1);
tmContrato.setValueAt(contratos.get(i).getContratada(), i, 2);
tmContrato.setValueAt(contratos.get(i).getServico(), i, 3);
}
}
}
Date g = rs.getDate("data");
java.util.Date d = new java.util.Date();
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy");
System.out.println(f.format(g));
} else {[/code]
Voce pode fazer assim cara, faça uma classe pra guardar os metodos abaixo
public java.sql.Date converteDataEmDataSQL(Date data) {
java.util.Date dataDoJava = data;
java.sql.Date dataDoSQL = null;
try {
dataDoSQL = new java.sql.Date(dataDoJava.getTime());
} catch (IllegalArgumentException e) {
e = new IllegalArgumentException("Erro data invalida: " + data);
}
return dataDoSQL;
}
public String converteDataEmString(Date data) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
sdf.setLenient(false);
try {
this.dataString = sdf.format(data);
} catch (IllegalArgumentException ex) {
ex = new IllegalArgumentException("Erro de conversão\nData: " + data + " inválida");
System.err.println(ex.getMessage());
}
return dataString;
}
//Instancia o objeto
Datas d = new Datas();
//prepara o comando
PreparedStatement cmd connection.prepareStatement(query);
// eu converto a data do java pra data do mysql
cmd.setDate(1, new Datas().converteDataEmDataSQL(dataEmissao));
cmd.setDate(2, new Datas().converteDataEmDataSQL(dataVencimento));
//executando o script retornado o valores da busca
ResultSet rs = cmd.executeQuery();
//definindo o modelo para o meu jTable
DefaultTableModel model = (DefaultTableModel) jTable.getModel();
//enquando tiver um valor dentro do meu objeto rs
while (rs.next()) {
//indexando jTable
model.addRow(
new Object[]{
//agora voce format chamando o metodo
d.converteDataEmString(rs.getDate("dataEmissao")),
d.converteDataEmString(rs.getDate("dataVencimento")),
d.converteDataEmString(rs.getDate("dataPagamento")),});
}
Espero que ajude !