티스토리 뷰

[java 17강]자바 SimpleDateFormat 클래스 (자바 날짜형식)




오늘 강의 에서는 SimpleDateFormat 클래스 에 대해서 알아보겠습니다.


SimpleDateFormat 클래스 란 무엇일까요?


SimpleDateFormat 클래스를 사용하는 예제가 Date 강의에서 잠깐 미리 나왔었습니다 ㅎㅎ

(Date 클래스 강의 : http://bvc12.tistory.com/166)


SimpleDateFormat 클래스를 date 형식의 객체를 자신이 원하는 방식으로 출력을 할수 있게 도와줍니다..


그래서 Date 클래스를 배우시면 자연스럽게 SimpleDateFormat 클래스도 알고 넘어가셔야 합니다.


그럼 SimpleDateFormat 클래스의 날짜 표현 방식부터 알아봅시다.


날짜 표현 방식 표 입니다.


Symbol 

설명 

 사용 예

 y

 year : 년도 

 yy : 14 , yyyy : 2014

 M

 month in year : 월 

 M : 1, MM : 01, MMM : 1월 

 d

 day in month : 일

 d : 1, dd : 01, ddd : 001, dddd : 0001

 h

 hour in am/pm(1-12) : 시

 h : 1  , hh : 01, hhh : 001, hhhh : 0001

 a

 am/pm marker

 a : 오후

(AM/PM 으로 표시하려면 format에서 Locale.US를 지정)

 k

 hour in day (1-24) : 시

 k : 13, kk : 13, kkk : 013, kkkk : 0013

 m

 minute in hour : 분 

 m : 20, mm: 20, mmm : 020, mmmm : 0020

 s

 second in minute : 초

 s : 10, ss : 10, sss : 010. ssss: 0010

 w

 week in year : 주(년기준) 

 w : 1, ww : 01, www :001, wwww : 0001 

 D 

 day in year : 일(년기준)

 D : 1, DD : 01, DDD: 001, DDDD : 0001 

 E

 day of week : 요일

 E : 수

 F

 day of week in month

: 월 기준 주간 요일 순번 

 F : 1, FF : 01, FFF:001, FFFF:0001

 G

 era designator : 시대

 AD 

 H

 hour in day (0-23) : 시 

 H: 13, HH : 13, HHH : 013 , HHHH:0013

 K

 hour in am/pm(0-11) : 시 

 K: 1 , KK : 01, KKK :001, KKKK: 0001 

 S

 fractional seconds : 초

 S : 402 

 W

 week in month : 주 (월기준) 

 W : 1, WW : 01, WWW : 001, WWWW : 0001

 z

 time zone

 z : KST, zzzz: 한국표준시

 Z

 time zone (RFC 822)  Z : +0900


위의 표현방식으로 포멧형테를 지정해줄수가 있습니다.


하지만 감이 안오시죠?


이건 API 에서 제공하는 예제 입니다.


Date and Time PatternResult
"yyyy.MM.dd G 'at' HH:mm:ss z"2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"Wed, Jul 4, '01
"h:mm a"12:08 PM
"hh 'o''clock' a, zzzz"12 o'clock PM, Pacific Daylight Time
"K:mm a, z"0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"2001-07-04T12:08:56.235-0700


이렇게 보셔도 감이 안오시죠? ㅎㅎ


그래서 예제 바로 들어가 보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package test;
 
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import javax.xml.crypto.Data;
 
/*
 * @author 국브
 */
public class test {
         
        public static void main(String[] args) {
            Date d = new Date();         // 오늘 날짜 생성
  
            SimpleDateFormat test0 = new SimpleDateFormat("yyyy-MM-dd");     //SimpleDateFormat 형태의 test0  을 생성하면서 포멧형식을 'yyyy-MM-dd' 로 생성
            SimpleDateFormat test1 = new SimpleDateFormat("yyyy.MM.dd");     //SimpleDateFormat 형태의 test1  을 생성하면서 포멧형식을 'yyyy.MM.dd' 로 생성
            SimpleDateFormat test2 = new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa"); //SimpleDateFormat 형태의 test2  을 생성하면서 포멧형식을 'yyyyy.MMMMM.dd GGG hh:mm aaa' 로 생성
            SimpleDateFormat test3 = new SimpleDateFormat("yyMMddHHmmssZ");  //SimpleDateFormat 형태의 test3  을 생성하면서 포멧형식을 'yyMMddHHmmssZ' 로 생성
            
 
            // 각각의 포멧형식으로 출력
            System.out.println(test0.format(d));
            System.out.println(test1.format(d));
            System.out.println(test2.format(d));
            System.out.println(test3.format(d));
            
            
        }
}
cs


바로 출력물을 확인해 보겠습니다.



이렇게 출력물이 만든 형테대로 출력이됩니다.


그냥 위에서 말씀드렸다싶이 원하는 포멧형식을 만들어서 포멧형식으로 출력을 하는것입니다.


이렇게 해서 이번강의를 통해서 SimpleDateFormat  클래스를 활용해 시간을 출력해보는 방법에 대해 알아보았습니다.


굼굼한점이 있으시면 언제든지 댓글 부탁드림니다... ^^


수고하세요!


댓글