entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Estoy haciendo una prueba, estoy manejando fecha_registro de tipo date en la tabla registro_aistencia de mysql, almacena en formato yyyy-MM-dd,
lo que quiero lograr es en la clase controladorAsistencia.java, utilizar el SimpleDateFormat para insertar el dato fecha en el formato (dd-MM-yyyy) en la tabla registro_asistencia.
a un no consigo insertar la fecha con el formato, me manda este error: Cannot format given Object as a Date.
el codigo es el siguiente:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import modelo.modeloAsistenciaTrabajadores;

public class controladorAsistenciaTrabajadores {

public boolean insertar(modeloAsistencia modeloAsistencia) {

    String insertar = "INSERT INTO REGISTRO_ASISTENCIA(FECHA_REGISTRO,ID_DEPARTAMENTO,ID_EMPLEADO) VALUES(?,?,?);";
    PreparedStatement psmt = null;
    boolean insertOK = false;
    try {
        Context ctx = new InitialContext();
        DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mantenimiento");
        Connection con = ds.getConnection();
        psmt = con.prepareStatement(insertar);
       SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy");
       String fechaformateada =formato.format(modeloAsistencia.getFecha_registro_asistencia());  
       psmt.setString(1, fechaformateada);
        psmt.setInt(2, modeloAsistencia.getId_departamento());
        psmt.setInt(3, modeloAsistencia.getId_empleado());

        if (psmt.executeUpdate() == 1) {
            insertOK = true;
        } else {
            insertOK = false;
        }
    } catch (Exception e) {
        System.out.println("Error: " + e);
    }
    return insertOK;
} }

Alguien me podria decir alguna sugerencia

0voto

white comentado

el metodo format de SimpleDateFormat debe recibir una instancia Date, que tipo de valor obtienes de getFecha_registro_asistencia() ?

0voto

Cristi_C comentado

Lo tengo definido como tipo String

1 Respuesta

2votos

white Puntos75880

ya que el método format no recibe cadenas de texto, tendras que usar parse() previamente.

SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy");
Date fecha_parsed = formato.parse(modeloAsistencia.getFecha_registro_asistencia());
String fechaformateada = formato.format(fecha_parsed);  

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta