Artículos de Tecnología > Programación

Cómo convertir de String para Date en Java

Alex Felipe

En Alura, necesito el nombre y la fecha de lanzamiento de un curso:

public class Curso {

private String nombre; 
private Date fechaDeLanzamiento;

public void setLanzamiento(Date data) { 
    this.lanzamiento = data; 
}

// restante del código

}

Sin embargo, cuando recibo la información fechaDeLanzamiento la recibimos en String:

String fechaDeLanzamiento = "23/11/2015"; 

Especificando el formateador

Para convertir esta fechaDeLanzamiento a la clase Date, necesitamos definir el formato esperado usando la clase SimpleDateFormat:

SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");

Esta definición está especificando que esperamos una fecha que contenga día/mes/año.

Usando el formateador para convertir a Date

¿Pero cómo hago con la conversión de String a Date? Utilizaremos el método parse () del objeto formato:

Date dataFormateada = formato.parse(fechaDeLanzamiento); 

Ahora solo agrega la fecha formateada para el objeto de la clase Curso:

Curso nuevo = new Curso();

SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy"); 
Date fecha = formato.parse("23/11/2015");

novo.setLazamiento(data);

¿Qué pasa si imprimo esa fecha? ¿Qué resultado aparece?

System.out.println(data); 

Resultado:

> Mon Oct 02 00:00:00 EST 2020 

Imprimir la fecha en el formato deseado

Espera, no era eso lo que buscaba ... Incluso logrando convertir una String con un formato específico a Date, el resultado esperado será del tipo Date. Para imprimir el objeto de datos en formato ("dd/MM/aaaa"), utilizaremos el método format () del objeto formato.

System.out.println(formato.format(data)); 

Resultado:

> 02/10/2020

Conversión con la API Calendar

¡Excelente! Logramos el resultado esperado. Para mantener la compatibilidad con las bibliotecas antiguas y convertir a Calendar, es fácil:

Calendar calendar = Calendar.getInstance(); 
calendar.setTime(date);

System.out.println(formato.format(calendar.getTime()));

Resultado:

> 02/10/2020

Esta opción es más antigua, pero es importante comprender la existencia de la compatibilidad.

Conozca las APIs de Java más recientes para Fechas

A partir de Java 8, fue introducida la clase LocalDate del paquete "java.time", el cual posee una mejor abstracción en el tratamiento de fechas. Pero, ¿y cómo puedo convertir String para LocalDate?

DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy"); 
LocalDate fecha = LocalDate.parse("02/10/2020", formato); 
System.out.println(fecha);

Resultado:

> 2020-10-02

Como ya vimos en este mismo artículo, para manejar la tarea de convertir fechas, necesitamos usar una clase responsable del formato que queramos.

En Alura tenemos toda una formación con varios cursos de Java, desde lo más básico con el lenguaje hasta conceptos más avanzados como clases, poliformismo y herencia. Pero no te asustes con esos términos, ellos son abordados con un proyecto práctico que junto con nuestra metodología y didáctica hacen que el contenido sea mucho más fácil de ser aprendido.

Artículos de Tecnología > Programación

En Alura encontrarás variados cursos sobre Programación. ¡Comienza ahora!

Precios en:
USD
  • USD
  • BOB
  • CLP
  • COP
  • USD
  • PEN
  • MXN
  • UYU

Semestral

  • 273 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri, la inteligencia artificial de Alura

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 6 meses
US$ 65.90
un solo pago de US$ 65.90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Anual

  • 273 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri, la inteligencia artificial de Alura

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 12 meses
US$ 99.90
un solo pago de US$ 99.90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Acceso a todos
los cursos

Estudia las 24 horas,
dónde y cuándo quieras

Nuevos cursos
cada semana