Olá, fiz um método para converter datas vindo do um FormattedTextField, ou seja, a data é informada pelo usuario, ele até que está convertendo, mais a data é totalmente diferente da que foi digitada, alguem poderia me dizer onde estou errando. Segue o código:
thiago, continua com erro, está mostrando nesse formato:
Thu Oct 15 00:00:00 BRT 2009, do jeito que vc me falou.
o que eu preciso é transformar um jformattedTextfield no formato: ##/##/####, para yyyy-MM-dd, para poder salvar no mysql, lembrando que no mysql o tipo é DATE.
Obrigado
pmlm
galla.info:
Thu Oct 15 00:00:00 BRT 2009, do jeito que vc me falou.
Isso é como o toString da classe Date mostra a data. Um Date não tem formato, podes é ter uma String com a data formatada de uma dada forma.
galla.info:
o que eu preciso é transformar um jformattedTextfield no formato: ##/##/####, para yyyy-MM-dd, para poder salvar no mysql, lembrando que no mysql o tipo é DATE.
Obrigado
O método do thiago transforma o teu textfield em Date e é esse Date que deves enviar para o mysql, que ele sabe o que fazer com ele. Uma questão que não me parece estar bem no teu método, depois alterado pelo thiago mas ainda assim sem esclarecer essa parte é o facto de ele ser void. Esse método deveria retornar um Date.
privateDatetransformaData(StringdataTexto)throwsParseException{SimpleDateFormatformat=newSimpleDateFormat("dd/MM/yyyy");StringdataDigitada=txtNasc.getText();Datedata=format.parse(dataDigitada);returndata;}(...)//substituir X pelo valor correctopstmt.setDate(X,transformaData(txtNasc.getText());(...)
G
galla.info
sim, mais o mysql está retornando o erro:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: ‘Thu Oct 29 00:00:00 BRST 2009’ for column ‘nascimento’ at row 1
Não devo está entendendo alguma coisa fiz o metodo do jeito que vc me falou, e continua retornando o erro!
Obrigado!
Ou então, pode modificar o método transformaData para que retorne um java.sql.Date:
private java.sql.Date transformaData(String dataTexto) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
String dataDigitada = dataTexto;
java.sql.Date data = new java.sql.Date(format.parse(dataDigitada).getTime());
return data;
}
Outra coisa, seria interessante separar as operações com o banco de dados de sua classe visual.
pmlm:
pstm.setDate(3, new java.sql.Date(transformaData(txtNasc.getText()).getTime());
hehe, cheguei atrasado.
G
galla.info
pmlm e Eric Yuzo, mto obrigado, resolvi meu problema!
Até mais!