Eu tenho um banco de dados em Firebird, com um campo DATE para gravar a data de nascimento, e estou há duas manhãs tentando pegar a data que o usuário insere em um JFormattedTextField, converter para Date, para gravar no banco. Já peguei varios exemplos na internet, mas nao consigo, sempre da erro, ou que nao consegue fazer o parse da String para Date, ou erro do formato que está sendo passado para o banco de dados na hora de gravar.
Eu gostaria de um exemplo se possível, de como capturar a data digitada de um JFormattedTextField, transformar para Date e gravar banco de dados em um campo DATE. O formato é “dd/MM/aaaa”. E o mesmo para pegar o horario de um JFormattedTextField, com o formato ##:##:## e transformar para Time e gravar o no banco que também possui um campo TIME.
StringdtFinal=textFieldDtFinal.getText();//pega no seu textfieldString[]aFinal=dtFinal.split("/");//quebra a string nas barrasGregorianCalendardtF=newGregorianCalendar(TimeZone.getTimeZone("GMT-3"),newLocale("pt_BR"));dtF.set(GregorianCalendar.YEAR,Integer.parseInt(aFinal[2]));//aqui seta o anodtF.set(GregorianCalendar.MONTH,Integer.parseInt(aFinal[1])-1);//aqui seta o mesdtF.set(GregorianCalendar.DATE,Integer.parseInt(aFinal[0]));//aqui seta o dia
Na hora de gravar
PreparedStatementpstmt=dbCon.prepareStatement("UPDATE tabela SET data = ?");pstmt.setTimestamp(1,newTimestamp(dtf.getTimeInMillis()));resp=pstmt.executeUpdate();
C
cleiton_herrmann
valeu rafael, fiz o que vc sugeriu e funcionou certinhu, inclusive pro meu campo hora, só fiz as devidas modificações e inseriu a hora certinhu também.
mas se nao for pedir muito, gostaria de uma explicação sobre a seguinte linha, pois nao entendi muito bem esse negocio de Timestamp e getTimeInMillis(). Eu nunca tinha trabalhando com datas e hora no java, eu achava que era um simples Date e Time, mais vi que tem muitas outras coisas como o Timestamp e o getTimeInMillis que vc mostrou no exemplo.
seguinte a classe Timestamp tem dois construtores e um deles recebe um valor long time , o método getTimeInMillis() da Classe Calendar , ele retorna um long de milisegundos , usei a classe Calendar prq a Classe Date ela está depreciada que dizer que a SUN , nao dara mais manutenção nessa classe…
C
cleiton_herrmann1 like
OK, muito obrigado pela atenção !!!
Até a proxima…
R
root_
Boa mesmo a soluçao… estava procurando algo do genero…
xD
Vlw mesmo!