JAVA
SimpleDateFormat : 날짜와 시간 출력하기
mukom
2022. 10. 7. 16:23
1. SimpleDateFormat 이란?
Date 와 Calendar 등 날짜와 시간에 관련한 클래스의 출력을 할 때에
원하는 형식을 지정할 수 있게 하는 클래스이다.
SimpleDateFormat 을 사용했을 때와 사용하지 않았을 때를 비교해보면 그 차이를 확실히 구분할 수 있게 된다.
// yyyy-MM-dd hh:mm:ss 이 포멧으로 지정
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// 기준시
String str = "2022-10-07 10:10:10";
// Calendar 객체 생성
Calendar calendar = Calendar.getInstance();
// Date 객체 생성
Date date = dateFormat.parse(str);
calendar.setTime(date);
// SimpleDateFormat 을 사용하지 않았을 때
System.out.println(calendar);
System.out.println(date);
// SimpleDateFormat 을 사용했을 때
System.out.println(dateFormat.format(date));
System.out.println(dateFormat.format(calendar.getTime()));
// 실행 결과
java.util.GregorianCalendar[time=1665105010000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=22,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=7,DAY_OF_YEAR=280,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=10,SECOND=10,MILLISECOND=0,ZONE_OFFSET=32400000,DST_OFFSET=0]
Fri Oct 07 10:10:10 KST 2022
2022-10-07 10:10:10
2022-10-07 10:10:10
실행 결과에서도 알 수 있듯이
SimpleDateFormat 의 사용 유무에 따라 각 클래스의 toString() 을 실행하게 되는데,
필요하지 않은 정보까지 있는 경우가 많고 한눈에 보기에 불편하기 때문에 SimpleDateFormat 를 사용하는 것이다.
2. 자주 사용하는 출력 형식
SimpleDateFormat 에는 다양한 출력 형식을 위하여 다음과 같은 기호를 사용한다.
기호 | 의미 | 보기 |
y | 년도(Year) | yyyy 👉 2022 |
M | 월(Month) | MM 👉10 MM월 👉 10월 |
D | 년의 몇 번째 일(Day of Year) 📌윤년을 포함하기 때문에 1 ~ 366 까지 나타낼 수 있다. |
D 👉 280 |
d | 월의 몇 번째 일(Day of Month) 📌Day 를 나타내는 기호 중 가장 많이 쓰이며, 1 ~ 31 까지 나타낼 수 있다. |
dd 👉 07 dd일 👉 07일 |
E | 주의 몇 번째 일(Day of Week) | EE 👉 목 EE요일 👉목요일 |
H | 시간(군용 시간) 📌밀리터리 타임이라고도 불리며, 24 시간제로 쓰인다. 0 ~ 23 로 오전과 오후를 나타내어 직관적인 구분이 가능하다는 장점이 있다. |
HH 👉 21 HH시 👉 21시 |
h | 시간 📌1 ~ 12 로 오전과 오후를 나타내기 때문에 명시적 구분이 힘들다. |
hh 👉 10 hh시 👉 10시 |
m | 분(Minute) 📌0 ~ 59 |
mm 👉23 mm분 👉23분 |
s | 초(Second) 📌0 ~ 59 |
ss 👉56 ss초 👉56초 |
이외에도 많은 기호가 있으며, 더 자세한 내용은 https://docs.oracle.com/javase/7/docs/api/ (Java API 문서)를 참고할 수 있다.