Fórum Inserir hora manual e gravar no postgrees #518496
01/05/2015
0
Tenho um campo jtextfield onde quero que seja inserida uma hora manualmente (12:50) por exemplo. Quero gravar essa informação no postgress, No postgrees a Date Type é do tipo "time without time zone". Mas não está dando ainda na construçã do codigo. Segue uma parte dele, se alguem puder me ajudar eu agradeço:
try {
DateFormat formatter = new SimpleDateFormat("##:##");
java.util.Date date = (java.util.Date) formatter.parse(ini.getText()); // ini campo jtextfield
PreparedStatement pst = conecta.conn.prepareStatement("Insert into cad_turno(turno, hr_inicio)values(?,?)");
pst.setString(1, turno.getText());
pst.setDate(2, new java.sql.Date(date.getTime()));
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Dados gravados com sucesso!!");
Silvio Silveira
Curtir tópico
+ 0Posts
01/05/2015
Eduardo Pessoa
Gostei + 0
01/05/2015
Silvio Silveira
Lá no banco de dados, o campo está do tipo "time without time zone". O tipo de dados pra passar para o banco de dados tem que ser do tipo time, ou seja, receber os dados da jtextfield, trata-lo (converter para time) e gravar no banco de dados. Acho que é isso.
Gostei + 0
01/05/2015
Eduardo Pessoa
[url]http://stackoverflow.com/questions/20972510/how-to-convert-postgresql-timestamp-with-time-zone-to-datetime[/url]
[url]http://stackoverflow.com/questions/1071800/how-to-use-joda-time-with-java-sql-timestamp[/url]
Gostei + 0
01/05/2015
Silvio Silveira
try {
String psqlDate = ini.getText();
Time date = (Time) new SimpleDateFormat("HH:mm").parse(psqlDate);
PreparedStatement pst = conecta.conn.prepareStatement("Insert into cad_turno(turno, hr_inicio,hr_fim)values(?,?,?)");
pst.setString(1, turno.getText());
pst.setTime(2, (Time) date);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Dados gravados com sucesso!!");
Mas aparece erro :
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Time
at visao_Form.Cad_turno.jGravarActionPerformed(Cad_turno.java:406)
at visao_Form.Cad_turno.access$400(Cad_turno.java:26)
at visao_Form.Cad_turno$5.actionPerformed(Cad_turno.java:124)
Gostei + 0
02/05/2015
Silvio Silveira
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String hora = ini.getText();
try {
Date d = sdf.parse(hora);
Time timee = new Time(d.getTime());
PreparedStatement pst = conecta.conn.prepareStatement("Insert into cad_turno(turno)values(?)");
pst.setTime(1, timee);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Dados gravados com sucesso!!");
} catch (ParseException ex) {
Logger.getLogger(teste.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Não foi possivel executar a gravacao" + ex.getMessage());
}
}
só que no BD ele está armazenamdo assim: "12:00:00.000000 -03:00:00" - Como eu retiro os dígitos a mais para que fique assim: "12:00:00" ?
Gostei + 0
02/05/2015
Eduardo Pessoa
Gostei + 0
03/05/2015
Silvio Silveira
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)