java.time 패키지의 Temporal 인터페이스는 날짜 및 시간의 개념을 나타내는 클래스가 구현해야 하는 인터페이스입니다. Temporal은 시간적인 정보에 접근하고 조작하는 메서드를 제공하는데, 이는 java.time 패키지의 많은 클래스에서 사용됩니다.
Temporal 인터페이스는 두 가지 주요 서브 인터페이스를 가지고 있습니다.
1. TemporalAccessor 인터페이스
TemporalAccessor는 읽기 전용 메서드를 제공하는데, 이를 통해 날짜 및 시간 필드에 접근할 수 있습니다.
2. TemporalAdjuster 인터페이스
TemporalAdjuster는 시간을 조정하는 메서드를 정의하는데, 이를 통해 날짜 및 시간을 조작할 수 있습니다.
Temporal 인터페이스에서 자주 사용되는 메서드
- isSupported(TemporalField field) 메서드 : 지정된 필드가 지원되는지 여부를 확인합니다.
- getLong(TemporalField field) 메서드 : 지정된 필드의 값을 long 형식으로 반환합니다.
- with(TemporalField field, long newValue) 메서드 : 지정된 필드의 값을 변경한 새로운 Temporal 객체를 반환합니다.
- plus(long amountToAdd, TemporalUnit unit) 메서드 : 지정된 단위로 시간을 더한 새로운 Temporal 객체를 반환합니다.
- minus(long amountToSubtract, TemporalUnit unit) 메서드 : 지정된 단위로 시간을 뺀 새로운 Temporal 객체를 반환합니다.
emporal 인터페이스를 구현한 클래스 중 일부는 Instant, LocalDate, LocalTime, LocalDateTime, ZonedDateTime 등이 있습니다. 이러한 클래스들은 날짜와 시간을 효과적으로 다루기 위해 Temporal 인터페이스의 메서드를 구현합니다.
아래는 Temporal 인터페이스를 사용하는 간단한 예제입니다
import java.time.LocalDate;
import java.time.temporal.ChronoField;
public class TemporalExample {
public static void main(String[] args) {
// 현재 날짜를 가져오기
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
// 특정 필드의 값 얻기
int year = currentDate.get(ChronoField.YEAR);
System.out.println("Year: " + year);
// 특정 필드의 값을 변경한 새로운 날짜 얻기
LocalDate newDate = currentDate.with(ChronoField.YEAR, 2022);
System.out.println("New Date: " + newDate);
// 특정 단위로 날짜를 더한 새로운 날짜 얻기
LocalDate plusDate = currentDate.plus(7, ChronoUnit.DAYS);
System.out.println("Date Plus 7 Days: " + plusDate);
}
}
이 예제에서는 LocalDate 클래스를 사용하여 현재 날짜를 가져오고, 특정 필드의 값을 얻으며, 필드의 값을 변경하고, 날짜에 일정한 단위를 더하는 방법을 보여줍니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 컬렉션 프레임워크 (0) | 2023.11.18 |
---|---|
java.time 패키지의 TemporalAccessor 인터페이스 (0) | 2023.11.17 |
java.time.Clock 클래스 (0) | 2023.11.17 |
java.time.YearMonth 클래스 (0) | 2023.11.17 |
java.time.Year 클래스 (0) | 2023.11.17 |