TemporalAdjusters — 공통·유용한 TemporalAdjuster 모음
TemporalAdjusters — 공통·유용한 TemporalAdjuster 모음
흔히 쓰이고 유용한 TemporalAdjuster 구현을 정적 메서드로 제공하는 클래스예요.
본문
시그니처
public final class TemporalAdjusters extends Object
정적 메서드로 제공되는 모든 구현은 불변(immutable)이에요.
설명
조정기(adjuster)는 temporal 객체를 수정하는 핵심 도구예요. 전략 디자인 패턴에 따라 서로 다른 접근 방식을 허용하면서 조정 과정을 외부화하기 위해 존재해요. 예를 들어 주말을 피해 날짜를 설정하는 조정기나, 날짜를 월의 마지막 날로 설정하는 조정기가 있을 수 있어요.
TemporalAdjuster를 사용하는 두 가지 동등한 방법이 있어요. 첫 번째는 인터페이스의 메서드를 직접 호출하는 것이고, 두 번째는 Temporal.with(TemporalAdjuster)를 사용하는 것이에요:
// 두 줄은 동등하지만 두 번째 접근이 권장돼요
temporal = thisAdjuster.adjustInto(temporal);
temporal = temporal.with(thisAdjuster);
with(TemporalAdjuster) 방식이 코드에서 훨씬 읽기 명확하므로 권장돼요.
이 클래스에는 정적 메서드로 사용 가능한 표준 조정기 집합이 들어 있어요. 여기에는 다음이 포함돼요:
- 월의 첫 번째 또는 마지막 날 찾기
- 다음 달의 첫 번째 날 찾기
- 연도의 첫 번째 또는 마지막 날 찾기
- 다음 연도의 첫 번째 날 찾기
- 월 내의 요일 찾기 (예: "6월의 첫 번째 수요일")
- 다음 또는 이전 요일 찾기 (예: "다음 목요일")
주요 메서드
firstDayOfMonth()— 현재 월의 첫 번째 날로 설정된 새 날짜를 반환하는 "first day of month" 조정기를 반환해요.lastDayOfMonth()— 현재 월의 마지막 날로 설정된 새 날짜를 반환하는 조정기를 반환해요.firstDayOfNextMonth()— 다음 달의 첫 번째 날로 설정된 새 날짜를 반환하는 조정기를 반환해요.firstDayOfYear()— 현재 연도의 첫 번째 날로 설정된 새 날짜를 반환하는 조정기를 반환해요.lastDayOfYear()— 현재 연도의 마지막 날로 설정된 새 날짜를 반환하는 조정기를 반환해요.next(DayOfWeek dayOfWeek)— 요일이 지정한 요일인 날짜로 조정하는 다음 요일 조정기를 반환해요.previous(DayOfWeek dayOfWeek)— 요일이 지정한 요일인 날짜로 조정하는 이전 요일 조정기를 반환해요.dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek)— 월의 서수 요일(ordinal day-of-week) 기준 새 날짜를 반환하는 조정기를 반환해요.