Java - Insertar fecha en Access

   
Vista:

Insertar fecha en Access

Publicado por Marco (5 intervenciones) el 17/01/2018 02:01:07
Hola, estoy trabajando con un proyecto enlazado a una base de datos Access en la cual tengo varias tablas y cuento con un campo de tipo fecha corta (dd/MM/yyyy), en mi proyecto existe la opcion de guardar registros en la base de datos mediante un botón, pero al tratar de guardar la fecha me marca error porque el formato de fecha no es el correcto, estoy usando un JDateChooser para seleccionar la fecha.
El error al tratar de ingresar la fecha es: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.2 excepción de datos: formato fecha/hora incorrecto: java.text.ParseException: Unparseable date: "Thu Jan 11 00:00:00 CST 2018"
Espero que alguien me pueda ayudar. Muchas gracias.
Este es mi código del botón que guarda los registros, el JDateChooser se llama "dcFechaNac" y el campo donde se ingresará la fecha en la base de datos se llama "FECHA_NAC"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void btnRegistrarActionPerformed(java.awt.event.ActionEvent evt) {
 
        String folio=txtFFolio.getText();
        String nombre=txtNombre.getText();
        String curp=txtFCurp.getText();
        String celular=txtFCelular.getText();
        Date fechanac=dcFechaNac.getDate();
        String domicilio=txtDomicilio.getText();
        String codigo=txtFCodigo.getText();
        String observaciones=txtObservaciones.getText();
        String SQL="insert into PACIENTES(FOLIO,NOMBRE,CURP,CELULAR,FECHA_NAC,DOMICILIO,CODIGO_POSTAL,OBSERVACIONES)values " + "('" + String.valueOf(folio) + "','" + nombre + "','" + curp + "','" + celular + "','" + fechanac + "','" + domicilio + "','" + codigo + "','" + observaciones + "' )";
        try {
            sentencia.executeUpdate(SQL);
            JOptionPane.showMessageDialog(null, "Registro Guardado");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Error, sus datos no fueron ingresados\n" + ex);
        }
    }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Insertar fecha en Access

Publicado por Nicolas (128 intervenciones) el 17/01/2018 03:01:57
Hola Marco.
En Java puedes formatear una fecha dándole el orden que tú quieras con simpledateformat. En internet hay muchos ejemplos. Te paso un link: http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/

Espero te sea de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar fecha en Access

Publicado por Marco (5 intervenciones) el 17/01/2018 03:16:22
Gracias. Lo que pasa es que apenas me estoy iniciando en programación y no sé cómo adaptar esa función a mi objeto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar fecha en Access

Publicado por Marco (5 intervenciones) el 17/01/2018 03:48:26
Estoy desesperado :)
Pagaré a quién me ayude a encontrar la solución mediante depósito a alguna cuenta bancaria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar fecha en Access

Publicado por Nicolas (128 intervenciones) el 17/01/2018 06:01:41
Pero tranquilo amigo, todo tiene solución aunque estemos a varios kms de distancia.
Prueba lo que te pase, estúdialo un poco y prueba.
El código es el siguiente:

1
2
3
4
Date curDate = new Date();
SimpleDateFormat format = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
DateToStr = format.format(curDate);
System.out.println(DateToStr);

Prueba ese fragmento de código y luego armas tu rompecabezas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar fecha en Access

Publicado por Yeen (1 intervención) el 06/12/2018 06:20:29
Hola
Probé un montón de códigos para guardar fecha en access pero ninguno me funciona, incluso intente agregando librerías de jcalendar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel

Insertar fecha en Access

Publicado por Billy Joel (132 intervenciones) el 07/12/2018 20:41:34
Parece que este tema nunca fue solucionado, wow casi todo un año, pero vamos a solucionar esto:
Antes de empezar se que trabajar con fechas puede ser algo engorroso pero una vez que sabemos como se hace entonces nuestra vida se descomplica un poco.

Los creadores de bases de datos saben que no nos gusta trabajar con fechas pero que igual las necesitamos, entonces una solución rápida a este problema es colocar un valor por default al campo fechaActual de la tabla PACIENTES y listo

Pero como somos necios y nos encanta estrellarnos insertando la fecha actual entonces acá te va otra solución.
Los campos de fecha tienen diferentes formatos
- YYYY/DD/MM
- DD/MM/YYYY
- MM/DD/YYYY
- etc...

Siendo esto así y como somos programadores, el programa se va acomodar a como somos, entonces suponiendo que el formato de fecha es dd/MM/yyyy entonces hagamos un método que nos devuelva la fecha actual en el formato que piden y sin tanta sofisticación.
Y si creamos un método que nos devuelva la fehca en ese formato?
1
2
3
4
5
6
public String getFechaActual(){
    Calendar c = Calendar.getInstance();
    return (c.get(Calendar.DAY_OF_MONTH) < 10 ? "0" + c.get(Calendar.DAY_OF_MONTH) : c.get(Calendar.DAY_OF_MONTH)) + "/"
            + (c.get(Calendar.MONTH) + 1 < 10 ? "0" + (c.get(Calendar.MONTH)+1) : (c.get(Calendar.MONTH)+1)) + "/"
            + c.get(Calendar.YEAR);
}

Aquí hago uso del operador ternario para formatear la fecha
Aquí una explicación mas masticada: https://www.lawebdelprogramador.com/foros/Java/1677316-Quicksort-metodo-de-recursimiento-ayuda.html#i1677361

Por ejemplo si el día es 9 de octubre del año actual yo pregunto si el día del mes es menor que 10 entonces coloca un "0" delante del día, de otro modo pon el día.
Hago eso porque quiero que la salida sea 09/10/2018, si no hago eso la salida sería 9/10/2018 y no queremos ese formato verdad.
Lo mismo se hace para el mes.

Espero haberte ayudado
Saludos,
;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad