TemporalAdjusters는 복잡한 날짜 조정 기능에 사용하는 기능을 제공하는 클래스입니다.

다음 예제를 통해 사용 예시를 알아보겠습니다.

 

import java.time.*;
import java.time.temporal.ChronoUnit;
import static java.time.temporal.TemporalAdjusters.*;

public class Main {
	public static void main(String[] args) {
    	LocalDate date1 = LocalDate.of(2022, 11, 21);
		LocalDate date2 = date1.with(nextOrSame(DayOfWeek.SUNDAY));
		LocalDate date3 = date1.with(lastDayOfMonth());
		LocalDate date4 = date1.with(firstDayOfNextMonth());
		
		System.out.println(date1);
		System.out.println(date2);
		System.out.println(date3);
		System.out.println(date4);
    }
}

출력 값

2022-11-21
2022-11-27
2022-11-30
2022-12-01

 

TemporalAdjusters 클래스의 팩토리 메서드

메서드 설명
dayOfWeekInMonth 서수 요일에 해당하는 날짜를 반환하는 TemporalAdjuster를 반환.
firstDayOfMonth 현재 달의 첫번째 날짜를 반환하는 TemporalAdjuster를 반환.
firstDayOfNextMonth 다음 달의 첫번째 날짜를 반환하는 TemporalAdjuster를 반환.
firstDayOfNextYear 내년의 첫번째 날짜를 반환하는 TemporalAdjuster를 반환.
firstDayOfYear 올해의 첫번째 날짜를 반환하는 TemporalAdjuster를 반환.
firstInMonth 현재 달의 첫번째 요일에 해당하는 날짜를 반환하는
TemporalAdjuster를 반환.
lastDayOfMonth 현재 달의 마지막 날짜를 반환하는 TemporalAdjuster를 반환.
lastDayOfNextMonth 다음 달의 마지막 날짜를 반환하는 TemporalAdjuster를 반환.
lastDayOfNextYear 내년 마지막 날짜를 반환하는 TemporalAdjuster를 반환.
lastDayOfYear 올해 마지막 날짜를 반환하는 TemporalAdjuster를 반환.
lastInMonth 현재 달의 마지막 요일에 해당하는 날짜를 반환하는 
TemporalAdjuster를 반환.
nextOrSame 현재 날짜 이후로 지정한 요일이 처음으로 나타나는
날짜는 반환하는 TemporalAdjuster를 반환.
previousOrSame 현재 날짜 이후로 지정한 요일이 이전으로 나타나는
날짜는 반환하는 TemporalAdjuster를 반환.

 

DateTimeFormatter

포매팅과 파싱 전용 java.time.format 패키지 중 DateTimeFormatter 클래스입니다.

정적 팩토리 메서드와 상수를 이용해 쉽게 포매터를 만들 수 있습니다.

예제를 통해 사용 예시를 확인해보겠습니다.

 

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import static java.time.temporal.TemporalAdjusters.*;

public class Main {
	public static void main(String[] args) {
		String s1 = date.format(DateTimeFormatter.BASIC_ISO_DATE);
		String s2 = date.format(DateTimeFormatter.ISO_LOCAL_DATE);
		LocalDate ld1 = LocalDate.parse("20221121", DateTimeFormatter.BASIC_ISO_DATE);
		LocalDate ld2 = LocalDate.parse("2022-11-21", DateTimeFormatter.ISO_LOCAL_DATE);
				
		System.out.println(s1);
		System.out.println(s2);
		
		System.out.println(ld1);
		System.out.println(ld2);
		
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
		LocalTime colonTime = LocalTime.of(17, 59, 59);
		
		System.out.println(formatter.format(colonTime));
    }
}

출력 값

20221022
2022-10-22
2022-11-21
2022-11-21
17:59:59

'Java > Time' 카테고리의 다른 글

ZoneId, ZoneDateTime, ZoneOffset  (0) 2022.11.28
Instant, Duration, Period  (0) 2022.11.28
LocalDate, LocalTime, LocalDateTime  (0) 2022.11.28

+ Recent posts