Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] SimpleDateFormat no funciona correctamente

Estas en el tema de SimpleDateFormat no funciona correctamente en el foro de Java en Foros del Web. Tengo un JFormatedtextField donde ingreso la fecha con el formato DIA-MES-AÑO Esto tengo en mi JFormatedTextField: 02-07-2014 Luego lo cacho con el fechastr de tipo ...
  #1 (permalink)  
Antiguo 02/07/2014, 12:27
 
Fecha de Ingreso: mayo-2014
Ubicación: Oaxaca
Mensajes: 14
Antigüedad: 9 años, 10 meses
Puntos: 0
SimpleDateFormat no funciona correctamente

Tengo un JFormatedtextField donde ingreso la fecha con el formato DIA-MES-AÑO
Esto tengo en mi JFormatedTextField: 02-07-2014
Luego lo cacho con el fechastr de tipo String

Código:
fechastr=txtIngresoAlta.getText();
            Date xdxd = null;
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            try {
                xdxd = sdf.parse(fechastr);
            } catch (ParseException ex) {
                Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
            }
Me arroja:
Wed Jan 04 00:00:00 CST 8

Donde esta mi error??

No encuentro como hacerlo para que pueda ingresar mi fecha a mi base de datos que por defecto debe ir como año,mes,dia. Salu2

Gracias por las respuestas :D
  #2 (permalink)  
Antiguo 02/07/2014, 12:34
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: SimpleDateFormat no funciona correctamente

Lo primero que veo raro es que dices que tienes DIA-MES-AÑO, pero el formato que has puesto es ""yyyy-MM-dd".

¿De dónde sacas Wed Jan 04 00:00:00 CST 8? ¿Un System.out.println(xdxd)? ¿o de la base de datos?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 02/07/2014, 12:39
 
Fecha de Ingreso: mayo-2014
Ubicación: Oaxaca
Mensajes: 14
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: SimpleDateFormat no funciona correctamente

Cita:
Iniciado por chuidiang Ver Mensaje
Lo primero que veo raro es que dices que tienes DIA-MES-AÑO, pero el formato que has puesto es ""yyyy-MM-dd".

¿De dónde sacas Wed Jan 04 00:00:00 CST 8? ¿Un System.out.println(xdxd)? ¿o de la base de datos?

Se bueno.

1.-Mira el formato que tengo dia mes y año es en mi FormattedTextField.

2.-Quiero convertirlo a un formato Año-Mes-Dia con el SimpleDateFormat.

3.-Si el resultado lo saco de la siguiente linea:
Código:
System.out.print(xdxd);
  #4 (permalink)  
Antiguo 02/07/2014, 12:49
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: SimpleDateFormat no funciona correctamente

El metodo parse() de simpledateformat coge un string con el formato que le has indicado en su constructor "yyyy-MM-dd" y lo convierte en Date. Pero el texto que le estás pasando lo está cogiendo de tu jformattedtextfield en el que dices que metes 02-07-2014, así que ese código debería darte una excepción, ya que el texto que pasas no cuadra con el formato que SimpleDateFormat espera. Y si no da la excepción, hará la conversión de cualquier manera con resultado insesperado.

Si quieres convertir con SimpleDateFormat, debes usar dos SimpleDateFormat, uno con el formato "dd-MM-yyyy" del formated text field para sacar el date

xdxd = sdf.parse(fechastr);

y otro con el formato de base de datos "yyyy-MM-dd" para convertir ese date a un texto "yyyy-MM-dd".

String fechaBaseDatos = otroSimpleDateFormat.format(xdxd);

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 02/07/2014, 12:59
 
Fecha de Ingreso: mayo-2014
Ubicación: Oaxaca
Mensajes: 14
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: SimpleDateFormat no funciona correctamente

Muchas gracias por la ayuda. Ya kedo perfectamente.

Etiquetas: correctamente, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:36.