소개
이 랩에서는 Java 의 LocalDate 클래스의 get() 메서드를 사용하여 날짜에서 특정 필드를 검색하는 방법을 배우게 됩니다. 이 메서드는 주어진 날짜에서 월의 일이나 요일과 같은 특정 필드만 검색해야 할 때 유용합니다. ChronoField 열거형을 사용하여 검색할 필드를 지정할 수 있습니다.
이 랩에서는 Java 의 LocalDate 클래스의 get() 메서드를 사용하여 날짜에서 특정 필드를 검색하는 방법을 배우게 됩니다. 이 메서드는 주어진 날짜에서 월의 일이나 요일과 같은 특정 필드만 검색해야 할 때 유용합니다. ChronoField 열거형을 사용하여 검색할 필드를 지정할 수 있습니다.
이 단계에서는 프로젝트 디렉토리에 LocalDateGet.java라는 새 Java 파일을 생성합니다. 이 파일에는 LocalDate 클래스의 get() 메서드를 시연하는 코드가 포함됩니다.
WebIDE 에서 터미널을 엽니다. 기본 디렉토리는 ~/project입니다.
touch 명령을 사용하여 LocalDateGet.java 파일을 생성합니다.
touch LocalDateGet.java
이 명령은 현재 디렉토리에 빈 파일을 생성합니다. 파일 목록을 표시하여 생성을 확인할 수 있습니다.
ls
출력에 LocalDateGet.java가 표시되어야 합니다.
이제 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 파일을 저장합니다.
이 단계에서는 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() 메서드가 월의 일을 올바르게 추출했음을 확인합니다.
다음으로, 요일을 가져오는 또 다른 메서드를 추가합니다. 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: 1
2021 년 5 월 17 일은 월요일이었고, ChronoField.DAY_OF_WEEK는 월요일을 1 로 나타내므로, 출력 Day of the week: 1은 올바릅니다.
마지막으로, 연중 일을 가져오는 메서드를 추가합니다. 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: 137
2021 년 5 월 17 일은 연중 137 번째 날이므로, 출력 Day of the year: 137은 올바릅니다.
이 랩에서는 Java LocalDate 클래스의 get() 메서드를 사용하여 날짜에서 특정 필드를 가져오는 방법을 배웠습니다. 동일한 날짜 (2021 년 5 월 17 일) 에 대한 월의 일, 요일 및 연중 일을 가져오는 프로그램을 만들었습니다. ChronoField 열거형과 함께 get() 메서드를 사용하면 특정 날짜 구성 요소를 효율적으로 추출하여 시간 데이터 작업 시 Java 프로그램의 정확성을 높일 수 있습니다.