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.