본문 바로가기
DEV/Java

[자바] SimpleDateFormat

by 어쩌다개발 2023. 2. 2.
반응형

Date와 Calendar, 두 개 만으로는 날짜 데이터를 원하는 형태로 다양하게 출력하는 것이 어려운데 SimpleDataFormat을 사용하면 간단히 해결 할 수 있다.
(Date, Calendar 참고 : https://devmango.tistory.com/145)

DateFormat은 추상클래스로 SimpleDateFormat의 조상이다. DateFormat은 추상클래스이므로 인스턴스를 생성하기 위해서는 getDateInstance()와 같은 static 메서드를 이용해야 한다.
getDateInstance()에 의해서 반환되는 것은 DateFormat을 상속받아 완전하게 구현한 SimpleDateFormat 인스턴스이다.

기호 의미
G 연대(BC, AD) AD
y 년도 2023
M 월(1~12 또는 1월~12월) 10 또는 10월, OCT
w 년의 몇 번째 주(1~53) 50
W 월의 몇 번째 주(1~5) 4
D 년의 몇 번째 일(1~366) 100
d 월의 몇 번째 일(1~31) 15
F 월의 몇 번째 요일(1~5) 1
E 요일
a 오전/오후(AM, PM) PM
H 시간(0~23) 20
k 시간(1~24) 13
K 시간(0~11) 10
h 시간(1~12) 11
m 분(0~59) 35
s 초(0~59) 55
S 천분의 일초(0~999) 253
z Time zone(General time zone) GMT +9:00
Z Time zone(RFC 822 time zone) +0900
' escaple문자(특수문자를 사용하는데 사용)  
import java.text.*;
import java.util.*;

public class DateFormatEx{

    public static void main(String[] args) {

        Date today = new Date();

        System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(today));
        System.out.println(new SimpleDateFormat("''yy년 MM월 dd일 E요일").format(today));
        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(today));
        System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a").format(today));
        System.out.println(new SimpleDateFormat("오늘은 올 해의 D번째 날.").format(today));
        System.out.println(new SimpleDateFormat("오늘은 이 달의 d번째 날").format(today));
        System.out.println(new SimpleDateFormat("오늘은 올 해의 w번째 주").format(today));
        System.out.println(new SimpleDateFormat("오늘은 이 달의 W번째 주").format(today));
        System.out.println(new SimpleDateFormat("오늘은 이 달의 F번째 E요일").format(today));

        try {

            Date d = new SimpleDateFormat("yyyyMMdd").parse("20230202");
            System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(d));

        } catch (Exception pe) {
            pe.printStackTrace();
        }
    }
}

결과

2023-02-02
'23년 02월 02일 목요일
2023-02-02 23:03:30.770
2023-02-02 11:03:30 오후
오늘은 올 해의 33번째 날.
오늘은 이 달의 2번째 날
오늘은 올 해의 5번째 주
오늘은 이 달의 1번째 주
오늘은 이 달의 1번째 목요일
2023-02-02

 

반응형

'DEV > Java' 카테고리의 다른 글

[자바] MessageFormat  (3) 2023.02.02
[자바] ChoiceFormat  (1) 2023.02.02
[자바] 형식화 클래스  (1) 2023.02.02
[자바] Calendar  (0) 2023.02.02
[자바] 사용자 정의 예외 만들기  (2) 2023.02.01

댓글