Ícone do site Cafeína Codificada

Não perca tempo: Aprenda a trabalhar com datas no Java

datas no java

Você quer aprender como trabalhar com datas no Java? Neste post iremos lhe ensinar as melhores formas de trabalhar com datas no Java para que você possa criar códigos com mais qualidade e desempenho.

O que você irá aprender:

A classe Date

A classe Date é a forma mais básica de se obter datas no Java. Para utilizarmos essa classe, simplesmente precisamos importá-la:

import java.util.Date;

Sua sintaxe é muito simples. Quando criamos um objeto Date, é opcional passarmos no primeiro parâmetro um Unix timestamp. Esse parâmetro define qual data será trabalhada. Se você não informar esse Unix timestamp, a data que será trabalhada será a data atual do sistema. Veja:

No primeiro exemplo, não passamos um valor para o primeiro argumento para trabalharmos com a data atual do sistema. Já no segundo exemplo, informamos um número de formato long que representa uma outra data em segundos (unix timestamp) para trabalharmos com uma data referente.

Formatando datas no Java

Agora que você aprendeu a pegar a data, vamos lhe ensinar a mostrar a data formatada.

Iremos te mostrar duas formas de formatar uma data: Utilizando a classe DateFormat e utilizando a classe SimpleDateFormat.

Utilizando a classe DateFormat

Primeiramente, vamos aprender a trabalhar com a classe DateFormat. Para utilizá-la em seu código, importe a classe desta maneira:

import java.text.DateFormat;

Pronto! Agora você poderá formatar as suas datas como o exemplo abaixo:

Perceba que criamos vários objetos para formatar a data. Cada um de um jeito para lhe mostrar as possibilidades:

Utilizando a classe SimpleDateFormat

Muitas vezes necessitamos de mais recursos para formatar uma data. Podemos recorrer à classe SimpleDateFormat para isso!

Em vez de passar uma constante como parâmetro do construtor como a classe DateFormat, iremos passar uma string com caracteres que serão substituídos pelas informações da data que iremos trabalhar.

Para importar a classe SimpleDateFormat no seu código, faça desta maneira:

import java.text.SimpleDateFormat;

Utilizaremos na string que passaremos como parâmetro os caracteres da tabela abaixo:

Símbolo Significado Apresentação Exemplo
G era designator (Text) AD
y Ano (Number) 1996
M Mês do ano (Text & Number) July & 07
d Dia do mês (Number) 10
h Hora em AM/PM (1~12) (Number) 12
H Hora do dia (0~23) (Number) 0
m Minuto da hora (Number) 30
s Segundo do minuto (Number) 55
S Milissegundo (Number) 978
E Dia da semana (Text) Tuesday
D Dia do ano (Number) 189
F Dia da semana no mês (Number) 2 (2nd Wed in July)
w Semana do ano (Number) 27
W Semana no mês (Number) 2
a AM / PM (Text) PM
k Hora do dia (1~24) (Number) 24
K Hora em AM/PM (0~11) (Number) 0
z Zona de Tempo (Text) Pacific Standard Time

Veja como implementamos a classe para formatar a data:

Utilizando a classe GregorianCalendar para trabalhar com datas

A classe Date é muito boa para pegar datas, mas se você precisa acrescentar 10 dias na data, por exemplo, você poderá utilizar a classe GregorianCalendar.

Para utilizá-la em seu código, basta importá-la:

import java.util.GregorianCalendar;

Veja como você pode pegar as informações de uma determinada data atual:

Obs.: Quando pegamos o mês, é retornado um número referente (0 – 11).

Para mudar a data que você está trabalhando, você pode usar a função set():

Operações com data

Uma tarefa muito comum quando trabalhamos com datas é fazer operações de acréscimo de dias, por exemplo. Podemos fazer essas operações da seguinte maneira:

Na função add(), passamos como primeiro parâmetro o que vai ser mudado (no exemplo será o dia do mês) e como segundo parâmetro o valor que será acrescido.

Ano bissexto

Para saber se um ano é bissexto ou não, podemos usar o método isLeapYear(int ano):

Trabalhando com datas internacionais

Você pode se deparar com a necessidade de mostrar a data por extenso no idioma de vários países. Isso pode ser feito da seguinte maneira:

Usamos a classe Locale para indicar o local que queremos utilizar o idioma.

Unix timestamp no Java

Unix timestamp é o tempo em segundos que se passaram de 1970 até um determinado momento.

Para pegarmos o Unix timestamp atual, podemos fazer isso:

Sair da versão mobile