Java/Time
TemporalAdjusters와 DateTimeFormatter
codejcd
2022. 11. 28. 18:53
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