TemporalAccessor는 java.time 패키지에서 시간 기반의 값을 읽기 위한 읽기 전용 인터페이스입니다. 이 인터페이스는 시간적인 정보에 접근하는 메서드를 정의하고 있습니다.
TemporalAccessor 인터페이스의 주요 메서드
- long getLong(TemporalField field) 메서드 : 지정된 TemporalField에 해당하는 값을 long 형식으로 반환합니다.
- boolean isSupported(TemporalField field) 메서드 : 지정된 TemporalField가 지원되는지 여부를 반환합니다.
- int get(TemporalField field) 메서드 : 지정된 TemporalField에 해당하는 값을 int 형식으로 반환합니다.
- <R> R query(TemporalQuery<R> query) 메서드 : 특정 유형의 값을 검색하는데 사용되는 메서드입니다. 예를 들어, TemporalQueries.precision()를 사용하여 정밀도를 얻을 수 있습니다.
- ZoneOffset getOffset() 메서드 : 현재 시점의 오프셋을 반환합니다.
TemporalAccessor는 읽기 전용이기 때문에 값을 수정하는 메서드는 제공하지 않습니다. 대신 값의 특정 필드를 읽고 쿼리하는 데 사용됩니다.
TemporalAccessor 인터페이스를 구현하는 클래스 중 일부에는 Instant, LocalDate, LocalTime, LocalDateTime, ZonedDateTime 등이 있습니다.
아래는 TemporalAccessor 인터페이스의 사용 예제입니다.
import java.time.LocalDate;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalAccessor;
public class TemporalAccessorExample {
public static void main(String[] args) {
// LocalDate를 TemporalAccessor로 사용
TemporalAccessor accessor = LocalDate.of(2022, 1, 1);
// 특정 필드의 값 얻기
long year = accessor.getLong(ChronoField.YEAR);
int month = accessor.get(ChronoField.MONTH_OF_YEAR);
int day = accessor.get(ChronoField.DAY_OF_MONTH);
System.out.println("Year: " + year);
System.out.println("Month: " + month);
System.out.println("Day: " + day);
// TemporalQuery를 사용하여 정밀도 얻기
TemporalQuery<String> precisionQuery = TemporalQueries.precision();
String precision = accessor.query(precisionQuery);
System.out.println("Precision: " + precision);
}
}
이 예제에서는 LocalDate를 TemporalAccessor로 사용하여 특정 필드의 값을 읽어오고, TemporalQuery를 사용하여 정밀도를 얻는 방법을 보여줍니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 컬렉션 프레임워크 ArrayList (0) | 2023.11.18 |
---|---|
자바 컬렉션 프레임워크 (0) | 2023.11.18 |
java.time 패키지의 Temporal 인터페이스 (0) | 2023.11.17 |
java.time.Clock 클래스 (0) | 2023.11.17 |
java.time.YearMonth 클래스 (0) | 2023.11.17 |