Java LocalDate get() 메서드 사용법

JavaBeginner
지금 연습하기

소개

이 랩에서는 Java 의 LocalDate 클래스의 get() 메서드를 사용하여 날짜에서 특정 필드를 검색하는 방법을 배우게 됩니다. 이 메서드는 주어진 날짜에서 월의 일이나 요일과 같은 특정 필드만 검색해야 할 때 유용합니다. ChronoField 열거형을 사용하여 검색할 필드를 지정할 수 있습니다.

Java 파일 생성

이 단계에서는 프로젝트 디렉토리에 LocalDateGet.java라는 새 Java 파일을 생성합니다. 이 파일에는 LocalDate 클래스의 get() 메서드를 시연하는 코드가 포함됩니다.

  1. WebIDE 에서 터미널을 엽니다. 기본 디렉토리는 ~/project입니다.

  2. touch 명령을 사용하여 LocalDateGet.java 파일을 생성합니다.

    touch LocalDateGet.java

    이 명령은 현재 디렉토리에 빈 파일을 생성합니다. 파일 목록을 표시하여 생성을 확인할 수 있습니다.

    ls

    출력에 LocalDateGet.java가 표시되어야 합니다.

필요한 import 및 클래스 구조 추가

이제 LocalDateGet.java 파일에 필요한 import 문과 main 클래스 정의를 포함한 기본 구조를 추가합니다. 이러한 import 는 Java 에서 날짜 및 시간 API 를 사용하기 위해 필수적입니다.

  1. WebIDE 의 코드 편집기에서 LocalDateGet.java 파일을 엽니다.

  2. 다음 코드를 파일에 추가합니다.

    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: 이 클래스는 시간대 없이 날짜를 나타냅니다.
    • java.time.temporal.ChronoField: 이 열거형은 DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_YEAR 등과 같은 날짜 및 시간에 대한 표준 필드 집합을 제공합니다.
    • java.time.temporal.TemporalAccessor: 이 인터페이스는 LocalDate와 같은 temporal 객체에 대한 읽기 전용 액세스를 제공합니다. get() 메서드는 이 인터페이스에서 정의됩니다.
    • java.time.temporal.TemporalField: 이 인터페이스는 연도, 월 또는 월의 일과 같은 날짜 - 시간 필드를 나타냅니다. ChronoField는 이 인터페이스를 구현합니다.
  3. 코드를 추가한 후 LocalDateGet.java 파일을 저장합니다.

월의 일 (day of month) 가져오기

이 단계에서는 get() 메서드와 ChronoField.DAY_OF_MONTH를 사용하여 LocalDate 객체에서 월의 일을 가져오는 방법을 시연하는 메서드를 LocalDateGet 클래스에 추가합니다.

  1. WebIDE 의 코드 편집기에서 LocalDateGet.java 파일을 엽니다.

  2. getDayOfMonth() 메서드를 LocalDateGet 클래스 내부에, 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): 2021 년 5 월 17 일을 나타내는 LocalDate 객체를 생성합니다.
    • ChronoField.DAY_OF_MONTH: 월의 일을 가져오고 싶음을 지정합니다.
    • date.get(field): 이것이 작업의 핵심입니다. date 객체에서 get() 메서드를 호출하여 field(즉, ChronoField.DAY_OF_MONTH) 를 전달하여 해당 정수 값을 추출합니다.
  3. LocalDateGet.java 파일을 저장합니다.

  4. 이제 이 메서드를 main에서 호출하여 실행되는 것을 확인해 보겠습니다. main 메서드를 다음과 같이 수정합니다.

    public static void main(String[] args) {
        getDayOfMonth();
        // Other methods will be called here later
    }
  5. 파일을 다시 저장합니다.

  6. 터미널을 열고 Java 코드를 컴파일합니다.

    javac LocalDateGet.java

    오류가 없으면 컴파일이 자동으로 완료됩니다.

  7. 컴파일된 Java 프로그램을 실행합니다.

    java LocalDateGet

    다음과 유사한 출력을 볼 수 있습니다.

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

    이는 getDayOfMonth() 메서드가 월의 일을 올바르게 추출했음을 확인합니다.

요일 (day of week) 가져오기

다음으로, 요일을 가져오는 또 다른 메서드를 추가합니다. ChronoField.DAY_OF_WEEK 필드는 요일을 나타내며, 1 은 월요일, 2 는 화요일, 일요일은 7 입니다.

  1. WebIDE 의 코드 편집기에서 LocalDateGet.java 파일을 엽니다.

  2. getDayOfMonth() 메서드 아래에 getDayOfWeek() 메서드를 LocalDateGet 클래스 내부에 추가합니다.

    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. LocalDateGet.java 파일을 저장합니다.

  4. 이제 main 메서드에서 이 새로운 메서드를 호출합니다. main 메서드를 다음과 같이 업데이트합니다.

    public static void main(String[] args) {
        getDayOfMonth();
        getDayOfWeek(); // Call the new method
        // Other methods will be called here later
    }
  5. 파일을 다시 저장합니다.

  6. 터미널에서 Java 코드를 컴파일합니다.

    javac LocalDateGet.java
  7. 컴파일된 Java 프로그램을 실행합니다.

    java LocalDateGet

    다음과 유사한 출력을 볼 수 있습니다.

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

    2021 년 5 월 17 일은 월요일이었고, ChronoField.DAY_OF_WEEK는 월요일을 1 로 나타내므로, 출력 Day of the week: 1은 올바릅니다.

연중 일 (day of year) 가져오기

마지막으로, 연중 일을 가져오는 메서드를 추가합니다. ChronoField.DAY_OF_YEAR 필드는 연중 일을 나타내며, 1 은 1 월 1 일입니다.

  1. WebIDE 의 코드 편집기에서 LocalDateGet.java 파일을 엽니다.

  2. getDayOfWeek() 메서드 아래에 getDayOfYear() 메서드를 LocalDateGet 클래스 내부에 추가합니다.

    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. LocalDateGet.java 파일을 저장합니다.

  4. 이제 main 메서드에서 이 마지막 메서드를 호출합니다. main 메서드를 다음과 같이 업데이트합니다.

    public static void main(String[] args) {
        getDayOfMonth();
        getDayOfWeek();
        getDayOfYear(); // Call the new method
    }
  5. 파일을 다시 저장합니다.

  6. 터미널에서 Java 코드를 컴파일합니다.

    javac LocalDateGet.java
  7. 컴파일된 Java 프로그램을 실행합니다.

    java LocalDateGet

    연중 일을 포함한 전체 출력을 볼 수 있습니다.

    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

    2021 년 5 월 17 일은 연중 137 번째 날이므로, 출력 Day of the year: 137은 올바릅니다.

요약

이 랩에서는 Java LocalDate 클래스의 get() 메서드를 사용하여 날짜에서 특정 필드를 가져오는 방법을 배웠습니다. 동일한 날짜 (2021 년 5 월 17 일) 에 대한 월의 일, 요일 및 연중 일을 가져오는 프로그램을 만들었습니다. ChronoField 열거형과 함께 get() 메서드를 사용하면 특정 날짜 구성 요소를 효율적으로 추출하여 시간 데이터 작업 시 Java 프로그램의 정확성을 높일 수 있습니다.