Método get() do LocalDate em Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar o método get() da classe LocalDate em Java para recuperar campos específicos de uma data. Este método é útil quando você só precisa recuperar um campo específico, como o dia do mês ou o dia da semana, de uma determinada data. Você pode usar o enum ChronoField para especificar qual campo recuperar.

Criar um arquivo Java

Nesta etapa, você criará um novo arquivo Java chamado LocalDateGet.java no diretório do seu projeto. Este arquivo conterá o código para demonstrar o método get() da classe LocalDate.

  1. Abra o terminal no seu WebIDE. O diretório padrão é ~/project.

  2. Crie o arquivo LocalDateGet.java usando o comando touch:

    touch LocalDateGet.java
    

    Este comando cria um arquivo vazio no seu diretório atual. Você pode verificar sua criação listando os arquivos:

    ls
    

    Você deve ver LocalDateGet.java listado na saída.

Adicionar as importações necessárias e a estrutura da classe

Agora, você adicionará a estrutura básica ao seu arquivo LocalDateGet.java, incluindo as instruções de importação necessárias e a definição da classe principal. Essas importações são essenciais para trabalhar com as APIs de data e hora em Java.

  1. Abra o arquivo LocalDateGet.java no editor de código do WebIDE.

  2. Adicione o seguinte código ao arquivo:

    import java.time.LocalDate;
    import java.time.temporal.ChronoField;
    import java.time.temporal.TemporalAccessor;
    import java.time.temporal.TemporalField;
    
    public class LocalDateGet {
    
        public static void main(String[] args) {
            // This is where we will call our methods later
        }
    }
    
    • java.time.LocalDate: Esta classe representa uma data sem um fuso horário.
    • java.time.temporal.ChronoField: Este enum fornece um conjunto padrão de campos para data e hora, como DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_YEAR, etc.
    • java.time.temporal.TemporalAccessor: Esta interface fornece acesso somente leitura a um objeto temporal, como LocalDate. O método get() é definido nesta interface.
    • java.time.temporal.TemporalField: Esta interface representa um campo de data-hora, como ano, mês ou dia do mês. ChronoField implementa esta interface.
  3. Salve o arquivo LocalDateGet.java após adicionar o código.

Obter o dia do mês

Nesta etapa, você adicionará um método à sua classe LocalDateGet que demonstra como recuperar o dia do mês de um objeto LocalDate usando o método get() e ChronoField.DAY_OF_MONTH.

  1. Abra o arquivo LocalDateGet.java no editor de código do WebIDE.

  2. Adicione o método getDayOfMonth() dentro da classe LocalDateGet, mas fora do método main:

    import java.time.LocalDate;
    import java.time.temporal.ChronoField;
    import java.time.temporal.TemporalAccessor;
    import java.time.temporal.TemporalField;
    
    public class LocalDateGet {
    
        public static void getDayOfMonth() {
            // Define the field to retrieve: DAY_OF_MONTH
            TemporalField field = ChronoField.DAY_OF_MONTH;
            // Create a LocalDate object for May 17, 2021
            TemporalAccessor date = LocalDate.of(2021, 5, 17);
    
            // Display the original date
            System.out.println("Date : " + date);
    
            // Retrieve the day of the month using the get() method
            int val = date.get(field);
    
            // Display the retrieved day of the month
            System.out.println("Day of the month: " + val);
            System.out.println(); // Add a blank line for better readability
        }
    
        public static void main(String[] args) {
            // This is where we will call our methods later
        }
    }
    
    • LocalDate.of(2021, 5, 17): Cria um objeto LocalDate representando 17 de maio de 2021.
    • ChronoField.DAY_OF_MONTH: Especifica que queremos recuperar o dia do mês.
    • date.get(field): Este é o núcleo da operação. Ele chama o método get() no objeto date, passando o field (que é ChronoField.DAY_OF_MONTH) para extrair o valor inteiro correspondente.
  3. Salve o arquivo LocalDateGet.java.

  4. Agora, vamos chamar este método de main para vê-lo em ação. Modifique seu método main da seguinte forma:

    public static void main(String[] args) {
        getDayOfMonth();
        // Other methods will be called here later
    }
    
  5. Salve o arquivo novamente.

  6. Abra o terminal e compile seu código Java:

    javac LocalDateGet.java
    

    Se não houver erros, a compilação será concluída silenciosamente.

  7. Execute o programa Java compilado:

    java LocalDateGet
    

    Você deve ver uma saída semelhante a esta:

    Date : 2021-05-17
    Day of the month: 17
    

    Isso confirma que o método getDayOfMonth() extrai corretamente o dia do mês.

Obter o dia da semana

Em seguida, você adicionará outro método para recuperar o dia da semana. O campo ChronoField.DAY_OF_WEEK representa o dia da semana, onde 1 é segunda-feira, 2 é terça-feira e assim por diante, até 7 para domingo.

  1. Abra o arquivo LocalDateGet.java no editor de código do WebIDE.

  2. Adicione o método getDayOfWeek() dentro da classe LocalDateGet, abaixo do método getDayOfMonth():

    import java.time.LocalDate;
    import java.time.temporal.ChronoField;
    import java.time.temporal.TemporalAccessor;
    import java.time.temporal.TemporalField;
    
    public class LocalDateGet {
    
        // ... (getDayOfMonth method as defined previously) ...
    
        public static void getDayOfWeek() {
            // Define the field to retrieve: DAY_OF_WEEK
            TemporalField field = ChronoField.DAY_OF_WEEK;
            // Create a LocalDate object for May 17, 2021 (which was a Monday)
            TemporalAccessor date = LocalDate.of(2021, 5, 17);
    
            // Display the original date
            System.out.println("Date : " + date);
    
            // Retrieve the day of the week using the get() method
            int val = date.get(field);
    
            // Display the retrieved day of the week
            System.out.println("Day of the week: " + val);
            System.out.println(); // Add a blank line for better readability
        }
    
        public static void main(String[] args) {
            // ... (main method as defined previously) ...
        }
    }
    
  3. Salve o arquivo LocalDateGet.java.

  4. Agora, chame este novo método do seu método main. Atualize o método main da seguinte forma:

    public static void main(String[] args) {
        getDayOfMonth();
        getDayOfWeek(); // Call the new method
        // Other methods will be called here later
    }
    
  5. Salve o arquivo novamente.

  6. Compile seu código Java do terminal:

    javac LocalDateGet.java
    
  7. Execute o programa Java compilado:

    java LocalDateGet
    

    Você deve ver uma saída semelhante a esta:

    Date : 2021-05-17
    Day of the month: 17
    
    Date : 2021-05-17
    Day of the week: 1
    

    Como 17 de maio de 2021 foi uma segunda-feira, e ChronoField.DAY_OF_WEEK representa a segunda-feira como 1, a saída Day of the week: 1 está correta.

Obter o dia do ano

Finalmente, você adicionará um método para recuperar o dia do ano. O campo ChronoField.DAY_OF_YEAR representa o dia do ano, onde 1 é 1º de janeiro e assim por diante.

  1. Abra o arquivo LocalDateGet.java no editor de código do WebIDE.

  2. Adicione o método getDayOfYear() dentro da classe LocalDateGet, abaixo do método getDayOfWeek():

    import java.time.LocalDate;
    import java.time.temporal.ChronoField;
    import java.time.temporal.TemporalAccessor;
    import java.time.temporal.TemporalField;
    
    public class LocalDateGet {
    
        // ... (getDayOfMonth and getDayOfWeek methods as defined previously) ...
    
        public static void getDayOfYear() {
            // Define the field to retrieve: DAY_OF_YEAR
            TemporalField field = ChronoField.DAY_OF_YEAR;
            // Create a LocalDate object for May 17, 2021
            TemporalAccessor date = LocalDate.of(2021, 5, 17);
    
            // Display the original date
            System.out.println("Date : " + date);
    
            // Retrieve the day of the year using the get() method
            int val = date.get(field);
    
            // Display the retrieved day of the year
            System.out.println("Day of the year: " + val);
            System.out.println(); // Add a blank line for better readability
        }
    
        public static void main(String[] args) {
            // ... (main method as defined previously) ...
        }
    }
    
  3. Salve o arquivo LocalDateGet.java.

  4. Agora, chame este método final do seu método main. Atualize o método main da seguinte forma:

    public static void main(String[] args) {
        getDayOfMonth();
        getDayOfWeek();
        getDayOfYear(); // Call the new method
    }
    
  5. Salve o arquivo novamente.

  6. Compile seu código Java do terminal:

    javac LocalDateGet.java
    
  7. Execute o programa Java compilado:

    java LocalDateGet
    

    Você deve ver a saída completa, incluindo o dia do ano:

    Date : 2021-05-17
    Day of the month: 17
    
    Date : 2021-05-17
    Day of the week: 1
    
    Date : 2021-05-17
    Day of the year: 137
    

    17 de maio de 2021 foi o 137º dia do ano, então a saída Day of the year: 137 está correta.

Resumo

Neste laboratório, você aprendeu a usar o método get() da classe LocalDate do Java para recuperar campos específicos de datas. Você criou um programa que recuperou o dia do mês, o dia da semana e o dia do ano para a mesma data (17 de maio de 2021). Ao usar o método get() junto com o enum ChronoField, você pode extrair eficientemente componentes específicos de data, tornando seus programas Java mais precisos ao trabalhar com dados temporais.