소개
이 랩에서는 Java 의 LocalDate 클래스의 get() 메서드를 사용하여 날짜에서 특정 필드를 검색하는 방법을 배우게 됩니다. 이 메서드는 주어진 날짜에서 월의 일이나 요일과 같은 특정 필드만 검색해야 할 때 유용합니다. ChronoField 열거형을 사용하여 검색할 필드를 지정할 수 있습니다.
Java 파일 생성
이 단계에서는 프로젝트 디렉토리에 LocalDateGet.java라는 새 Java 파일을 생성합니다. 이 파일에는 LocalDate 클래스의 get() 메서드를 시연하는 코드가 포함됩니다.
WebIDE 에서 터미널을 엽니다. 기본 디렉토리는
~/project입니다.touch명령을 사용하여LocalDateGet.java파일을 생성합니다.touch LocalDateGet.java이 명령은 현재 디렉토리에 빈 파일을 생성합니다. 파일 목록을 표시하여 생성을 확인할 수 있습니다.
ls출력에
LocalDateGet.java가 표시되어야 합니다.
필요한 import 및 클래스 구조 추가
이제 LocalDateGet.java 파일에 필요한 import 문과 main 클래스 정의를 포함한 기본 구조를 추가합니다. 이러한 import 는 Java 에서 날짜 및 시간 API 를 사용하기 위해 필수적입니다.
WebIDE 의 코드 편집기에서
LocalDateGet.java파일을 엽니다.다음 코드를 파일에 추가합니다.
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는 이 인터페이스를 구현합니다.
코드를 추가한 후
LocalDateGet.java파일을 저장합니다.
월의 일 (day of month) 가져오기
이 단계에서는 get() 메서드와 ChronoField.DAY_OF_MONTH를 사용하여 LocalDate 객체에서 월의 일을 가져오는 방법을 시연하는 메서드를 LocalDateGet 클래스에 추가합니다.
WebIDE 의 코드 편집기에서
LocalDateGet.java파일을 엽니다.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) 를 전달하여 해당 정수 값을 추출합니다.
LocalDateGet.java파일을 저장합니다.이제 이 메서드를
main에서 호출하여 실행되는 것을 확인해 보겠습니다.main메서드를 다음과 같이 수정합니다.public static void main(String[] args) { getDayOfMonth(); // Other methods will be called here later }파일을 다시 저장합니다.
터미널을 열고 Java 코드를 컴파일합니다.
javac LocalDateGet.java오류가 없으면 컴파일이 자동으로 완료됩니다.
컴파일된 Java 프로그램을 실행합니다.
java LocalDateGet다음과 유사한 출력을 볼 수 있습니다.
Date : 2021-05-17 Day of the month: 17이는
getDayOfMonth()메서드가 월의 일을 올바르게 추출했음을 확인합니다.
요일 (day of week) 가져오기
다음으로, 요일을 가져오는 또 다른 메서드를 추가합니다. ChronoField.DAY_OF_WEEK 필드는 요일을 나타내며, 1 은 월요일, 2 는 화요일, 일요일은 7 입니다.
WebIDE 의 코드 편집기에서
LocalDateGet.java파일을 엽니다.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) ... } }LocalDateGet.java파일을 저장합니다.이제
main메서드에서 이 새로운 메서드를 호출합니다.main메서드를 다음과 같이 업데이트합니다.public static void main(String[] args) { getDayOfMonth(); getDayOfWeek(); // Call the new method // Other methods will be called here later }파일을 다시 저장합니다.
터미널에서 Java 코드를 컴파일합니다.
javac LocalDateGet.java컴파일된 Java 프로그램을 실행합니다.
java LocalDateGet다음과 유사한 출력을 볼 수 있습니다.
Date : 2021-05-17 Day of the month: 17 Date : 2021-05-17 Day of the week: 12021 년 5 월 17 일은 월요일이었고,
ChronoField.DAY_OF_WEEK는 월요일을 1 로 나타내므로, 출력Day of the week: 1은 올바릅니다.
연중 일 (day of year) 가져오기
마지막으로, 연중 일을 가져오는 메서드를 추가합니다. ChronoField.DAY_OF_YEAR 필드는 연중 일을 나타내며, 1 은 1 월 1 일입니다.
WebIDE 의 코드 편집기에서
LocalDateGet.java파일을 엽니다.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) ... } }LocalDateGet.java파일을 저장합니다.이제
main메서드에서 이 마지막 메서드를 호출합니다.main메서드를 다음과 같이 업데이트합니다.public static void main(String[] args) { getDayOfMonth(); getDayOfWeek(); getDayOfYear(); // Call the new method }파일을 다시 저장합니다.
터미널에서 Java 코드를 컴파일합니다.
javac LocalDateGet.java컴파일된 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: 1372021 년 5 월 17 일은 연중 137 번째 날이므로, 출력
Day of the year: 137은 올바릅니다.
요약
이 랩에서는 Java LocalDate 클래스의 get() 메서드를 사용하여 날짜에서 특정 필드를 가져오는 방법을 배웠습니다. 동일한 날짜 (2021 년 5 월 17 일) 에 대한 월의 일, 요일 및 연중 일을 가져오는 프로그램을 만들었습니다. ChronoField 열거형과 함께 get() 메서드를 사용하면 특정 날짜 구성 요소를 효율적으로 추출하여 시간 데이터 작업 시 Java 프로그램의 정확성을 높일 수 있습니다.



