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번째 일요일입니다.
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
04.21(IO 예제로 정리하기) (0) | 2020.04.21 |
---|---|
04.20(URL예제 - 웹 상의 이미지 파일 다운로드) (0) | 2020.04.20 |
04.17(API - Calendar 예제) (0) | 2020.04.17 |
04.16(자바 IO 예제) (0) | 2020.04.16 |
04.15(자바 IO - System.in.read();) (0) | 2020.04.15 |