Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Programación

Cómo convertir de String para Date en Java

Alura
Alex Felipe
Alex Felipe
13/10/2020

Compartir

Mira este artículo:
  1. Especificando el formateador
  2. Usando el formateador para convertir a Date
  3. Imprimir la fecha en el formato deseado
  4. Conversión con la API Calendar

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.

Alex Felipe
Alex Felipe

Alex é instrutor e desenvolvedor e possui experiência em Java, Kotlin, Android. Atualmente cria conteúdo no canal https://www.youtube.com/@AlexFelipeDev.

Artículo Anterior
¿Cómo elegir mi carrera en TI?
Siguiente Artículo
Diferencia entre int e Integer en Java

Ver otros artículos sobre Programación

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast