Preciso fazer validação de data que foi inserida numa célula de um JTable.
O problema é que ele retorna a data no formato:
Fri Oct 08 12:23:44 BRT 2004
desse jeito, não consigo formatar a data para inserir no DB e nem para fazer validação, pois, ou ele dá erro de que não pode converter a data, ou converte a data com outro valor, tipo, se colocar a data 08/15/2004 ele retorna algo como 05/03/2005.
Esquisito, neh? Tem como fazer o Java entender que eu quero que ele retorne a data no formato dd/mm/yyyy, não importando o componente/variável/sei-lá-mais-o-que?
como a data foi digitada?
como vc está validando-a? se puder postar o código, tbm fica melhor…
R
rashiPJ
A data foi digitada no formato dd/MM/yyyy
só que quando vou recuperá-la no evento setValueAt da JTable, retorna a data neste outro formato.
O mesmo ocorre com um JTextField, que apresenta a data no formato que falei.
Quando vou formatar usando o SimpleDateFormat, dá erro.
A
andersonraPJ
“rashi”:
só que quando vou recuperá-la no evento setValueAt da JTable, retorna a data neste outro formato.
O método correto para “recuperar” valores em um JTable é o getValueAt…
R
rashiPJ
No getValueAt o valor está correto.
Eu estou usando o setValueAt para verificar se o valor digitado está correto antes de setá-lo no elemento do vetor que estou usando para popular a tabela.
Faço o seguinte:
este são os testes que fiz, mas a lógica é essa. Verifico qual a coluna que foi alterada e pego o valor de value, para ver qual foi o valor entrado.
O problema só ocorre com datas
M
maicon_bPJ
que tal:
String dataParaDB = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”).format(new SimpleDateFormat(“dd/MM/yyyy”).parse(“08/10/2004”));
hah se quiser podes com isso tanto passar a data como 8/10/04 entre outros.