개발/Kotlin&JAVA
[JAVA] TemporalAdjusters
애쿠
2023. 1. 26. 00:55
JAVA8 이후에 시간을 조정하는데 쓰이는 클래스다.
사용법도 편하고 직관적이며, 제공하는 API도 많으니 JAVA8 이후엔 TemporalAdjusters를 사용하는게 권장된다.
- LocalDate, LocalDateTime 등 시간관리 클래스로 날짜를 지정하고 지정된 날짜를 조정하는데 쓰인다.
- with와 함께 쓰인다. 아래는 현재일 기준 직전 월요일을 찾는다.
LocalDateTime currentDateTime = LocalDateTime.now();
LocalDateTime targetDateTime = currentDateTime
.with(TemporalAdjusters.firstDayOfYear()) // 이번 년도의 첫 번째 일(1월 1일)
.with(TemporalAdjusters.lastDayOfYear()) // 이번 년도의 마지막 일(12월 31일)
.with(TemporalAdjusters.firstDayOfNextYear()) // 다음 년도의 첫 번째 일(1월 1일)
.with(TemporalAdjusters.firstDayOfMonth()) // 이번 달의 첫 번째 일(1일)
.with(TemporalAdjusters.lastDayOfMonth()) // 이번 달의 마지막 일
.with(TemporalAdjusters.firstDayOfNextMonth()) // 다음 달의 첫 번째 일(1일)
.with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)) // 이번 달의 첫 번째 요일(여기서는 월요일)
.with(TemporalAdjusters.lastInMonth(DayOfWeek.FRIDAY)) // 이번 달의 마지막 요일(여기서는 마지막 금요일)
.with(TemporalAdjusters.next(DayOfWeek.FRIDAY)) // 다음주 금요일
.with(TemporalAdjusters.nextOrSame(DayOfWeek.FRIDAY)) // 다음주 금요일(오늘 포함. 오늘이 금요일이라면 오늘 날짜가 표시 된다.)
.with(TemporalAdjusters.previous(DayOfWeek.FRIDAY)) // 지난주 금요일
.with(TemporalAdjusters.previousOrSame(DayOfWeek.FRIDAY));// 지난주 금요일(오늘 포함)
추가적인 정보는 JAVA Docs에서 확인 할 수 있다.