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?
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.
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:
case 4:
if (novo){
try{
System.out.println((String)value);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
sdf.setLenient(false);
System.out.println(sdf.parse((String)value));
Date a = new Date();
//row.m_dataini = data;
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