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 문서)를 참고할 수 있다.