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

Convertir String a Date

Estas en el tema de Convertir String a Date en el foro de Java en Foros del Web. Podrian considerar este tema repitente, y hasta cierto punto en varios foros (incluyendo este) se puede encontrar la solución, sin embargo hasta ahora no he ...
  #1 (permalink)  
Antiguo 11/01/2012, 09:23
Avatar de Nahikarii  
Fecha de Ingreso: agosto-2011
Mensajes: 16
Antigüedad: 12 años, 8 meses
Puntos: 1
Pregunta Convertir String a Date

Podrian considerar este tema repitente, y hasta cierto punto en varios foros (incluyendo este) se puede encontrar la solución, sin embargo hasta ahora no he podido solucionar el problema.

Tengo un String "11-01-2012" el cual necesito pasar a Date, de acuerdo a muchos comentarios esto se soluciona con un SimpleDateFormat de esta manera.

Código JAVA:
Ver original
  1. String dt = "11-01-2012";
  2. SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy");
  3.  
  4. Date today = formato.parse(dt);
  5.  
  6. System.out.println(today)

Puede parecer que la solucion ya la tengo, sin embargo el resultado de imprimir ese tipo de dato es:

Wen Jan 11 00:00:00 COT 2012

y es preciso que el formato de la fecha sea "dd-MM-yyyy"

si agrego la linea

formato.format(today);

esto devuelve un String y yo necesito que el tipo de dato sea Date.

Y todo mi problema consiste en esto. Agradeceria mucho su ayuda.
  #2 (permalink)  
Antiguo 11/01/2012, 13:32
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Respuesta: Convertir String a Date

Primero, para trabajar con los días, meses, o año de una fecha no tiene que formatearla.
Segundo, se formatea la fecha si ya la va a imprimir o escribir en una salida.
Tercero, le recomiendo que revise la documentación a detalle.
Cuarto, para que no diga que no le ayude, le facilito un código para sus pruebas.

Código Java:
Ver original
  1. Date date    = new Date();
  2.        
  3.         SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
  4.         System.out.println(sdf.format(date));
  5.        
  6.         System.out.println(date.getDate());
  7.         System.out.println(date.getMonth()+1);
  8.         System.out.println(date.getYear()+1900);
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #3 (permalink)  
Antiguo 11/01/2012, 14:23
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Convertir String a Date

Hola,

Como indica CapacProg solamente es necesario formatear una fecha cuando se imprime en una salida, pero también es necesario algunas veces para leerla. Por ejemplo usando el código de CapacProg:
Código Java:
Ver original
  1. Date date    = new Date();
  2. SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
  3. System.out.println(sdf.format(date));
En ese caso estás leyendo una fecha con formato y volviendo a dar formato en el momento de imprimirlo en pantalla. Internamente la fecha se guarda como un número que indica el número de segundo en que estamos desde 1970.
Código Java:
Ver original
  1. System.out.println(date.getTime());
Pero realmente el problema está en la forma que estas usando Java y el OS, por lo que no puedes usar la fecha dd-MM-yyyy directamente sin usar DateFormat es porque no tienes bien configurado el lugar y el idioma en tu sistema operativo o en tu programa. De otra forma Java no necesita darle formato porque usa el nacional, que en otros países es dd/MM/yyyy. Y normalmente este trae varias consecuencias adicionales internamente puesto que usas fechas y números con un formato y en otros lugares del programa otro.


Saludos,

Última edición por HackmanC; 11/01/2012 a las 14:30 Razón: nombre de la variable
  #4 (permalink)  
Antiguo 11/01/2012, 15:19
Avatar de Nahikarii  
Fecha de Ingreso: agosto-2011
Mensajes: 16
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Convertir String a Date

Muchas gracias por sus respuestas y de alguna forma habia considerado lo de formatear la fecha a la hora de mostrarlo pero de la manera incorrecta. Ya que era irrelevante el formato de la fecha al momento de almacenarlo en un Date ya que la finalidad era almacenarla. Gracias :D!
  #5 (permalink)  
Antiguo 12/01/2012, 03:53
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Convertir String a Date

Obvio, no se deben imprimir Dates. En general si imprimes ciertos objetos lo que saldrá es la implementación que tenga del método toString().

Para mostrar por pantalla ya tenias el String dt, para trabajar con la fecha utilizas el Date today. Si en algún momento cambiase y quisieses volver a mostrarlo por pantalla tendrías que formatear de nuevo el Date para re-obtener el String.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: date, 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 04:55.