자바/java.time 패키지
java.time 패키지(2) - TemporalAdjusters와 Period & Duration
백_곰
2022. 1. 7. 11:19
1. TemporalAdjusters
- 날짜와 시간을 plus()와 minus()를 써서 바꿨지만, TemporalAdjusters를 사용하면 직관적으로 바꿀 수 있다.
- 아래의 코드를 보고 이해하자.

- 이외에도 여러 개의 메서드가 존재하는데, 이것은 자바의 정석 565p를 참고하자.
- 아래의 코드는 TemporalAdjuster의 인터페이스이다.

( 사실 with() 대신에 adjustInto()를 사용해도 된다. )
( adjustInto()를 쓴다는 것은 내부적으로 사용하기 위해서 사용되기 때문에, 이것이 아니라면 with()를 쓴다.)
1-1. TemporalAdjusters를 이해하기 위한 예제(1)
: TemporalAdjuster를 내부적으로 인터페이스를 상속 받아 구현한다.


( import static을 사용하여 간단하게 표현하였다. )
2. Period & Duration
- (날짜-날짜)는 Preiod을, (시간-시간)은 Duration을 사용한다.
- 아래의 코드를 보고 이해하자.


( LocalTime의 Duration은 위의 Period를 Duration으로 바꿔주면 똑같다. )
- 주의할 점은 Duration은 시간, 분을 얻을 수 있는 get() 메서드가 없고 getSeconds()만 존재한다.
그래서 시간과 분을 얻기 위해서는 getSeconds() 를 가지고 Locatime으로 변경해야만 한다.
아래의 코드를 보자.

- 더 자세한 내용은 자바의 정석 569p를 참조한다.