Black Friday 20% de desconto
Ainda dá tempo

0

dias

00

hrs

00

min

00

seg

Artigos > Programação

Pegando a data atual em Java

Alex Felipe
Alex Felipe

Entenda um pouco mais das diversas formas para gerar a data atual, utilizando algumas das funções da linguagem Java de programação.

Quando um aluno inicia um curso é gerada uma matrícula para ele no meu sistema:


public class Matricula {

private Aluno aluno; 
private Curso curso; 
private Date dataDeInscricao;

//métodos

Mas como faço para adicionar a data atual no momento em que o aluno se matricula em um curso? É simples! Precisamos apenas fazer uma instância para a classe Date:

public class Matricula {

//atributos

private Date dataDeInscricao = new Date();

//métodos

Testando o método geraDataDeInscricao(), qual será o resultado?


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

Resultado:

 > Wed Nov 25 10:16:55 BRST 2015

Ótimo, funcionou! Quando fazemos uma instância da classe Date, ela coleta as informações de: dia, mês, ano, horas, minutos e segundos de acordo com o Time Zone configurado na máquina com precisão de milissegundos, ou seja, ele vai pegar todas essas informações naquele instante!

Embora a classe Date funcione, não é recomendado fazer instâncias dela para gerar a data atual, pois é considerada uma solução Deprecated, ou seja, uma solução obsoleta. Sugerimos utilizar a classe Date apenas para questões de compatibilidade. Para outras situações, é recomendado o uso da classe Calendar, utilizamos o seu método estático getInstance() para pegar a data atual:


public class Matricula {

// atributos

private Calendar dataDeInscricao = Calendar.getInstance();

//métodos

}

Se testarmos novamente a classe Matricula:


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

Resultado:

 > Wed Nov 25 10:55:14 BRST 2015

Funcionou como o esperado. Existe também a classe GregorianCalendar,que é uma subclasse de Calendar, ou seja, uma classe mais específica que abstrai as necessidades para casos em que o seu calendário seja gregoriano. Para alterar o calendário só precisa mudar de Calendar para GregorianCalendar e, em vez de usar o método estático getInstance(), precisamos fazer a instância da classe GregorianCalendar:


public class Matricula {

// atributos

private GregorianCalendar dataDeInscricao = new GregorianCalendar();

//métodos

}

Testando novamente a classe Matricula:


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

Resultado:

 > Wed Nov 25 10:58:17 BRST 2015

A data é impressa com sucesso! Mas, além do Date e do Calendar, é possível utilizar a classe LocalDateTime disponível a partir do Java 8, por meio do seu método estático now(), que coleta a informação de data atual de acordo com as informações do relógio do sistema operacional.


public class Matricula {

// atributos

private LocalDate dataDeInscricao = LocalDate.now();

//métodos

}

Testando novamente:


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

Resultado

> 2015-11-25T11:05:36.693 

Funcionou como esperado! Como podemos ver, a impressão do LocalDateTime é mais sofisticada e apresenta um formato mais legível.

Vimos diversas formas para gerar a data atual utilizando Java, porém algumas são consideradas Deprecated e só são utilizadas apenas para compatibilidade, como é o caso da classe Date e também soluções mais sofisticadas como é o caso da LocalDateTime disponível a partir do Java 8. E aí, qual solução você gostou mais?

Há um post da Caelum que detalha essa nova API do Java 8. Pensando nisso tudo, o criador da Caelum, Paulo Silveira, resolveu criar um curso de Java 8 e suas bibliotecas com mais 1500 alunos e 99% de recomendação.

Leia também:

Artigos de Tecnologia e Negócios > Programação

15% off

Cursos profissionais de Programação é na Alura, comece agora!

  • 1233 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

  • Desconto 15%

Premium

Desconto 15%
  • 1233 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75 R$63,75
à vista R$900 R$765
Matricule-se

Premium Plus

Desconto 15%
  • 1233 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100 R$85
à vista R$1.200 R$1.020
Matricule-se

Max

Desconto 15%
  • 1233 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120 R$102
à vista R$1.440 R$1.224
Matricule-se
Conheça os Planos para Empresas

Acesso por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas