728x90
반응형

SimpleDateFormat 패턴

패턴 의미 출력
G 연대(BC, AD) AD
yyyy 년도 2020
MM 04
w 해당 년도의 몇 번째 주(1~53) 17
W 해당 월의 몇 번째 주(1~5) 4
DD 해당 년도의 몇 번째 일(1~366) 110
dd 해당 월의 몇 번째 일(1~31) 19
F 해당 월의 몇 번째 요일(1~5) 3
E 요일(월~일)
a 오전/오후(AM, PM) 오후
HH 시간(0~23) 20
hh 시간(1~12) 01
KK 시간(0~11) 01
kk 시간(1~24) 13
mm 분(0~59) 25
ss 초(0~59) 38
SS 1/1000초(0~999) 297
Z 타임존 +0900
z 타임존(RFC 822) KST

 

사용 예제

Date today = new Date();
	SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); 
	System.out.println(format1.format(today));

>

2020-04-19

 

 

예제

 

2020년의 매월 세 번째  일요일의 날짜를 출력

public class Test() {
	private final char[] DAY_OF_WEEK = {'일', '월', '화', '수', '목', '금', '토'};
	
    public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
	
		cal.set(2020,0,1);  // cal의 날짜를 2020년 1월 1일로 설정
		for(int i=0; i<12; i++) {
			int weekday = cal.get(Calendar.DAY_OF_WEEK);  // 1일의 요일을 구함
		
			// 매월 1일이 무슨 요일인지 알아야 함
			// (만약 1일이 일요일이라면 2번째 일요일은 15일, 아니라면 23-1일의 요일을 하면 알 수 있음)
			// 15일은 7*2+1일, 23일은 7*3+2일로 계산함 
			int secondSunday = (weekday==1)?15:23-weekday;
			
			// 두 번째 일요일(secondSunday로 cal의 날짜(DAY_OF_MONTH)를 변경
			cal.set(Calendar.DAY_OF_MONTH, secondSunday);
			
			Date d = cal.getTime();  // Calendar를 Date로 변환
			System.out.println(new SimpleDateFormat("yyyy년 MM월 dd일은 F번째 E요일입니다.").format(d));
			
			cal.add(Calendar.MONTH, 1);
			cal.set(Calendar.DAY_OF_MONTH, 1);
		}   
	}
}

>

2020년 01월 19일은 3번째 일요일입니다.
2020년 02월 16일은 3번째 일요일입니다.
2020년 03월 15일은 3번째 일요일입니다.
2020년 04월 19일은 3번째 일요일입니다.
2020년 05월 17일은 3번째 일요일입니다.
2020년 06월 21일은 3번째 일요일입니다.
2020년 07월 19일은 3번째 일요일입니다.
2020년 08월 16일은 3번째 일요일입니다.
2020년 09월 20일은 3번째 일요일입니다.
2020년 10월 18일은 3번째 일요일입니다.
2020년 11월 15일은 3번째 일요일입니다.
2020년 12월 20일은 3번째 일요일입니다.

반응형
복사했습니다!