[ 자바 코딩 ] SimpleDateFormat 날짜 형식 지정하기
안녕하세요. 제임스입니다.
계속해서 날짜 관련 코드 작성법에 대해 정리하고 있는데요. 오늘은 날짜를 원하는 형식으로 프린트 하는 방법에 대해 알아 보겠습니다.
앞선 포스팅에서는 각각의 년, 월, 일, 시간 값들을 뽑아낸 후 아래와 같이 이쁘지 않은 형태로 프린트 했었습니다.
1 | System.out.println(year+"."+month+"."+date+"("+korDayOfWeek+") "+hour+":"+minute+":"+second); | cs |
이렇게 프린트 하기 위해 너무 많은 코드를 작성해야 합니다.
그래서 자바에서는 SimpleDateFormat 이라는 무지무지 고마운 클래스를 제공하고 있습니다.
지금부터 이 SimpleDateFormat 에 대해 알아 보겠습니다.
■ SimpleDateFormat
참고: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
이 클래스는 날짜를 원하는 포맷으로 파싱시켜 주는 역할을 합니다.
이때 사용하는 패턴들이 있는데요. 그 패턴 중 우리가 사용할 몇가지만 정리해보겠습니다.
Letter |
Date or Time Component |
Presentation |
Examples |
y |
년 |
1996; 96 |
|
M |
월 |
July; Jul; 07 |
|
d |
일 |
10 |
|
H |
시간(24시간) |
0 |
|
h |
시간(am/pm) |
12 |
|
m |
분 |
30 |
|
s |
초 |
55 |
예제를 보겠습니다.
1 2 3 4 5 | SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); System.out.println(sdf.format(cal.getTime())); | cs |
위와 같이 simpleDateFormat 생성자에 패턴을 입력 했습니다.
format 함수를 이용하여 프린트 하면 원하는 패턴의 날짜형식이 리턴되게 됩니다.
yyyy > 2018 과 같이 년도를 4자리로 표현하라는 의미 입니다.
MM > 시간의 분을 나타내는 mm 과 구분해야 하는데요. 대문자 MM 으로 써야 월을 의미합니다.
dd > 일을 의미 합니다 (해당 달의 몇번째 일인지를 의미)
HH > 시간 중 시를 의미 하며 HH 는 24시간으로 표기 hh 는 12시간 기준으로 am/pm 을 추가로 표기 가능합니다.
mm > 시간의 분을 나타내는 것으로 월을 의미하는 MM 과 구분해야 합니다.
ss > 초를 의미 합니다.
년도를 의미하는 yyyy를 제외한 MM.dd HH:mm:ss 들이 두자리로 표기되어 있습니다 .
월/일 시:분:초 모두 최대 두자리로 표기 되기 때문인데요. 한자리일 경우 그냥 한자리로 표기 됩니다.
위 코드를 실행한 결과 값은 다음과 같습니다.
2018.01.06 01:35:44
yyyy 대신 yy 만 사용하게 되면 년도의 마지막 두자리만 표기 됩니다.
1 2 3 4 5 | SimpleDateFormat sdf = new SimpleDateFormat("yy.MM.dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); System.out.println(sdf.format(cal.getTime())); | cs |
결과 값은 다음과 같습니다.
18.01.06 01:47:47
▼ 도움이 되셨다면 로그인이 필요 없는 ▼
▼ 하트 클릭 한번 부탁 드립니다 ▼
감사합니다 :D