Extraindo Ano, Mês e Dia da Data em Java

Extraindo Ano, Mês e Dia da Data em Java

1. Visão geral

Neste breve tutorial, veremos como extrairyear,montheday  de um determinadoDate de Java.

Veremos como extrair esses valores usando a classejava.util.Date legada e também usando a nova biblioteca de data e hora do Java 8.

No Java 8, uma nova biblioteca de data e hora foi introduzida para anumber of good reasons. Além de outras vantagens,the new library provides a better API for operations such as extracting Year, Month, Day etc. from given Date.

E, se você estiver procurando por um artigo mais detalhado sobre a nova biblioteca de data e hora, dê uma olhada emhere.

2. Usando Java 7

Para um determinadojava.util.Date to extrai campos individuais, comoYear,Month,Day etc. a primeira etapa que precisamos fazer é convertê-lo para a instânciaCalendar:

Date date = // the date instance
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

Assim que tivermos uma posiçãoCalendar instance, podemos invocar diretamente seu métodoget e fornecer o campo específico que queremos extrair.

Podemos usar constantes presentes emCalendar para extrair campos específicos.

2.1. Obter ano

Para extrairyear,, podemos invocarget  passandoCalendar.YEAR como argumento:

calendar.get(Calendar.YEAR);

2.2. Obter mês

Da mesma forma, para extrairmonth,, podemos invocarget  passandoCalendar.MONTH  como um argumento:

calendar.get(Calendar.MONTH);

Observe que os meses emCalendar  são indexados a zero; para janeiro, esse método retornará 0.

2.3. Obter dia

Finalmente, para extrairday,, invocamosget  passandoCalendar.DAY_OF_MONTH  como um argumento:

calendar.get(Calendar.DAY_OF_MONTH);

3. Usando Java 8

O novo pacotejava.time contém várias classes que podem ser usadas para representarDate.

Cada classe difere pelas informações adicionais que armazena além deDate.

OLocalDate  básico contém apenas as informações de data, enquantoLocalDateTime contém informações de data e hora.

Da mesma forma, classes mais avançadas comoOffsetDateTimeeZonedDateTime contêm informações adicionais sobre o deslocamento deUTCe informações sobretime-zone respectivamente.

Em qualquer caso, todas essas classes oferecem suporte a métodos diretos para extrair informações de ano, mês e data.

Vamos explorar esses métodos para extrair informações dea LocalDate nome da instâncialocalDate.

3.1. Obter ano

Para extrairYear, LocalDate basta fornecera getYear method:

localDate.getYear();

3.2. Obter mês

Da mesma forma, para extrairMonth, we, usegetMonthValue API:

localDate.getMonthValue();

Ao contrário deCalendar, os meses emLocalDate são indexados a partir de 1; para janeiro, retornará 1.

3.3. Obter dia

Finalmente, para extrairDay,, temos o métodogetDayOfMonth:

localDate.getDayOfMonth();

4. Conclusão

Neste tutorial rápido, exploramos como extrair valores inteiros deYear,MontheDay deDate em Java.

Mostramos como extrair esses valores usando as antigas classesDateeCalendar, bem como a nova biblioteca de data e hora do Java8.

O código-fonte completo dos snippets usados ​​neste tutorial éavailable over at Github.