반응형
Java 개발을 하다 보면 Date, Calendar를 활용해서 날짜를 다루는 경우가 많습니다.
그렇지만 원하는 패턴이나 포맷으로 변경하기는 어려움이 있습니다.
그럴 때 활용할 수 있는 SimpleDateFormat을 알아보겠습니다.
기본예시
Date 활용
Date nowDate = new Date();
System.out.println(nowDate); // "Tue Jul 16 20:07:05 KST 2024"
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy년 MM월 dd일");
// 원하는 데이터 포맷 지정
String formatNowDate = simpleDateFormat.format(nowDate);
// 지정한 포맷으로 변환
System.out.println(formatNowDate); // "2024년 07월 16일"
Calendar 활용
Calendar calendar = Calendar.getInstance();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
simpleDateFormat.applyPattern("yyyy년 MM월 dd일");
// 지정한 포맷으로 변환
System.out.println(simpleDateFormat.format(calendar.getTime())); // "2024년 07월 16일"
활용예시
아래에 예시처럼 원하는 날짜포맷 작성하여 출력할 수 있습니다.
Date today = new Date();
SimpleDateFormat format1;
SimpleDateFormat format2;
SimpleDateFormat format3;
SimpleDateFormat format4;
SimpleDateFormat format5;
SimpleDateFormat format6;
SimpleDateFormat format7;
SimpleDateFormat format8;
SimpleDateFormat format9;
SimpleDateFormat format10;
format1 = new SimpleDateFormat("yyyyMMdd");
format2 = new SimpleDateFormat("yyyy-MM-dd");
format3 = new SimpleDateFormat("yy년 MM월 dd일 E요일",Locale.KOREAN);
format4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
format5 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
format6 = new SimpleDateFormat("오늘은 올 해의 D번째 날");
format7 = new SimpleDateFormat("오늘은 이 달의 d번째 날");
format8 = new SimpleDateFormat("오늘은 올 해의 w번째 주");
format9 = new SimpleDateFormat("오늘은 이 달의 W번째 주");
format10 = new SimpleDateFormat("오늘은 이 달의 F번째 E요일",Locale.KOREAN);
System.out.println(format1.format(today)); // "20240716"
System.out.println(format2.format(today)); // "2024-07-16"
System.out.println(format3.format(today)); // "24년 07월 16일 화요일"
System.out.println(format4.format(today)); // "2024-07-16 20:04:17.400"
System.out.println(format5.format(today)); // "2024-07-16 08:04:17 오후"
System.out.println(format6.format(today)); // "오늘은 올 해의 198번째 날"
System.out.println(format7.format(today)); // "오늘은 이 달의 16번째 날"
System.out.println(format8.format(today)); // "오늘은 올 해의 29번째 주"
System.out.println(format9.format(today)); // "오늘은 이 달의 3번째 주"
System.out.println(format10.format(today)); // "오늘은 이 달의 3번째 화요일"
패턴
기호 | 의미 | 보기 |
G | 연대(BC, AD) | AD |
y | 년도 | 2024 |
M | 월 | 7 |
w | 년의 몇번째주 | 33 |
W | 월의 몇번째주 | 3 |
D | 년의 몇번째일 | 100 |
d | 월의 몇번째일 | 16 |
F | 월의 몇번째요일 | 3 |
E | 요일 | 화 |
a | 오전/오후(AM/PM) | AM |
H | 시간(0~23) | 11 |
k | 시간(1~24) | 11 |
K | 시간(0~11) | 11 |
h | 시간(1~12) | 11 |
m | 분(0~59) | 33 |
s | 초(0~59) | 33 |
S | 천분의 1초(0~999) | 333 |
z | Time zone(General time zone) | GMT+9:00 |
Z | Time zon(RFC 822 time zone) | +0900 |
. | escape | 없음 |
반응형
'Java' 카테고리의 다른 글
Java Date 날짜시간 다루기 (0) | 2024.07.18 |
---|---|
Java split 문자열 자르기 분할 (0) | 2024.07.16 |
Java substring 문자열 자르기 (0) | 2024.07.15 |
Java는 무엇인가(특징 및 장단점) (0) | 2024.07.14 |