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

Obteniendo la fecha actual en Java

Alex Felipe
Alex Felipe
25/06/2023

Compartir

img1 'imagen de atributos privados en una clase de Java'

Cuando un alumno inicia un curso, se le genera un registro en mi sistema:

public class Matricula {
	private Alumno alumno;
	private Curso curso;
	private Date fechaDeInscripcion;
	
	//métodos
}

Pero, ¿cómo agrego la fecha actual en el momento en que el estudiante se inscribe en un curso? ¡Es simple! Solo necesitamos crear una instancia para la clase Date:

public class Matricula {
    //atributos
    
    private Date fechaDeInscripcion = new Date();
    
    //métodos
}

Probando el método generarFechaDeInscripcion()¿Cuál será el resultado?

Matricula matricula = new Matricula();
System.out.println(matricula.getFechaDeInscripcion());

Resultado:

Mon Jun 19 11:04:42 BRST 2023

¡Genial, funcionó! Cuando hacemos una instancia de la clase Fecha, esta recopila la información de: día, mes, año, horas, minutos y segundos según la Zona Horaria configurada en la máquina con precisión de milisegundos, es decir, obtendrá toda esta información en ese momento.

Aunque la clase Date funciona, no se recomienda hacer instancias de la misma para generar la fecha actual, ya que se considera una solución Obsoleta, es una solución que se usa poco. Sugerimos usar la clase Date solo por razones de compatibilidad. Para otras situaciones, se recomienda usar la clase Calendar, usamos su método estático getInstance() para obtener la fecha actual:

public class Matricula {
    //atributos
    
    private Calendar fechaDeInscripcion = Calendar.getInstance();
    
    //métodos
}

Si probamos nuevamente la clase Matricula:

Matricula matricula = new Matricula();
System.out.println(matricula.getFechaDeInscripcion.getTime());

Resultado

Mon Jun 19 11:25:42 BRST 2023

Funcionó como esperábamos. También existe la clase GregorianCalendar, que es una subclase de Calendar, es decir, una clase más específica que abstrae las necesidades de los casos en los que tu calendario es gregoriano. Para cambiar el calendario, solo necesitamos cambiar de Calendar a GregorianCalendar y, en lugar de usar el método estático getInstance(), debemos crear la instancia de la clase GregorianCalendar:

public class Matricula {
    //atributos
    
    private GregorianCalendar fechaDeInscripcion = new GregorianCalendar();
    
    //métodos
}

Probando nuevamente la clase Matricula:

Matricula matricula = new Matricula();
System.out.println(matricula.getFechaDeInscripcion.getTime());

Resultado:

Mon Jun 19 11:31:42 BRST 2023

¡La fecha se imprimió con éxito! Pero, además de la Fecha y el Calendario, es posible utilizar la clase LocalDateTime disponible desde Java 8 en adelante, a través de su método estático now(), que recopila la información de la fecha actual de acuerdo con la información del reloj del sistema operativo.

public class Matricula {
	//atributos
    
    private LocalDate fechaDeInscripcion = LocalDate.now();
    
    //métodos
}

Probando nuevamente:

Matricula matricula = new Matricula();
System.out.println(matricula.getFechaDeInscripcion());

Resultado:

2023-06-19T11:11:49:52

¡Funcionó como esperábamos! Como podemos ver, la impresión LocalDateTime es más sofisticada y tiene un formato más legible.

Hemos visto varias formas de generar la fecha actual usando Java, pero algunas se consideran obsoletas y solo se usan por compatibilidad, como es el caso de la clase Date y también soluciones más sofisticadas como es el caso de LocalDateTime disponible desde Java 8. Entonces, ¿qué solución te gustó más?

Hay una publicación en Alura Latam que detalla esta nueva API de Java 8. Con todo esto en mente, tenemos la formación Java en nuestra plataforma para que disfrutes estudiando este lenguaje tan popular como es Java.

autor

Alex Felipe

Alex es instructor y desarrollador y tiene experiencia en Java, Kotlin, Android. Creador de más de 40 cursos, como Kotlin, Flutter, Android, persistencia de datos, comunicación con Web API, personalización de pantalla, pruebas automatizadas, arquitectura App y Firebase. Es experto en Programación Orientada a Objetos, siempre con el objetivo de compartir las mejores prácticas y tendencias en el mercado de desarrollo de software. Trabajó durante 2 años como editor de contenidos en el blog de Alura y hoy sigue escribiendo artículos técnicos.

Traducido para Alura Latam por Luis Puig.

Artículo Anterior
Diferencias entre biblioteca, framework y API
Siguiente Artículo
¿Qué es Python? Historia, sintaxis y una guía para iniciarse en el lenguaje

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