Inserir hora manual e gravar no postgrees

Java

01/05/2015

Boa noite.
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

Silvio Silveira

Curtidas 0

Respostas

Eduardo Pessoa

Eduardo Pessoa

01/05/2015

Essa mudança deve ser feito no banco ou na linguagem, eu não sei bem.
GOSTEI 0
Silvio Silveira

Silvio Silveira

01/05/2015

Entao é assim: tenho um campo do tipo jtextfield (Com mascara de entrada) . ele deve receber uma hora que o usuario vai digitar: Exemplo: 12:15. Tenho que gravar essa informação no Postgree.
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
Eduardo Pessoa

Eduardo Pessoa

01/05/2015

Eu acho que entendi, então é o Java que tem que tratar, tu já chegou a ver esses links?

[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
Silvio Silveira

Silvio Silveira

01/05/2015

Tentando seguir esses posts:
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
Silvio Silveira

Silvio Silveira

01/05/2015

consegui gravar no BD com esse código:
 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
Eduardo Pessoa

Eduardo Pessoa

01/05/2015

Foi com a ajuda de alguns links.
GOSTEI 0
Silvio Silveira

Silvio Silveira

01/05/2015

Consegui. Eu estava tentando gravar na coluna errada do BD. Agora ta beleza. pessoal muito obrigado pela ajuda. Valeu mesmo. Obrigado.
GOSTEI 0
POSTAR