본문 바로가기
개발언어/JAVA

[JAVA] 자바 날짜 포맷 변경 방법(SimpleDateFormat) yyyyMMdd

by 코딩 시그널 2020. 8. 6.
반응형

Date클래스를 이용하여 현재 날짜를 출력하면 영문으로 된 날짜를 리턴한다. 특정 문자열 포맷으로 얻고 싶으면 java.text.SimpleDateFormat 클래스를 이용하면 된다. 다음은 오늘 날짜를 yyyy 년 MM월 dd일로 출력하는 예제이다.  

package testProject;

import java.text.SimpleDateFormat;
import java.util.Date;

public class simpleDateFormatEx {

	public static void main(String[] args) {
		Date nowDate = new Date();
		System.out.println("포맷 지정 전 : " + nowDate);
		
        
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy년 MM월 dd일"); 
        	//원하는 데이터 포맷 지정
		String strNowDate = simpleDateFormat.format(nowDate); 
        	//지정한 포맷으로 변환 
		System.out.println("포맷 지정 후 : " + strNowDate);
		
	}

}

 

 

Date 객체뿐만 아니라 String 문자열 또한 SimpleDateFormat 클래스를 이용하면 쉽게 원하는 패턴의 포맷으로 변경할 수 있다. 

package testProject;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class simpleDateFormatEx {

	public static void main(String[] args) {
		// 날짜 형식 변환시 parsing 오류를 try catch로 체크
		try {
			String strDate = "20200806";
			SimpleDateFormat dtFormat = new SimpleDateFormat("yyyyMMdd");
			SimpleDateFormat newDtFormat = new SimpleDateFormat("yyyy-MM-dd");
			// String 타입을 Date 타입으로 변환
			Date formatDate = dtFormat.parse(strDate);
			// Date타입의 변수를 새롭게 지정한 포맷으로 변환
			String strNewDtFormat = newDtFormat.format(formatDate);
			System.out.println("포맷 전 : " + strDate);
			System.out.println("포맷 후 : " + strNewDtFormat);
		}catch (ParseException e) {
			e.printStackTrace();
		}
	}
}

 

다음은 다양한 포맷을 적용해서 얻은 문자열 입니다.

package testProject;

import java.text.SimpleDateFormat;
import java.util.Date;

public class simpleDateFormatEx {

	public static void main(String[] args) {
		Date nowDate = new Date();
		
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
		System.out.println(simpleDateFormat.format(nowDate));
		
		simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println(simpleDateFormat.format(nowDate));
		
		simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd a HH:mm:ss");
		System.out.println(simpleDateFormat.format(nowDate));
		
		simpleDateFormat = new SimpleDateFormat("오늘은 E요일 입니다.");
		System.out.println(simpleDateFormat.format(nowDate));
	}
}

 

날짜를 원하는 형식으로 표현하기 위해 패턴을 사용하는데 다음 표는 SimpleDateFormat의 패턴 장성에 사용되는 기호들이다.

문자 날짜 및 시간 요소  표시 예제
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year (context sensitive) Month July; Jul; 07
L Month in year (standalone form) Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00

예제 패턴

날짜 및 시간 패턴 결과
"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
"yyyy-MM-dd'T'HH:mm:ss.SSSXXX" 2001-07-04T12:08:56.235-07:00
"YYYY-'W'ww-u" 2001-W27-3

 

 

참고 사이트

 

SimpleDateFormat (Java Platform SE 8 )

Parses text from a string to produce a Date. The method attempts to parse text starting at the index given by pos. If parsing succeeds, then the index of pos is updated to the index after the last character used (parsing does not necessarily use all charac

docs.oracle.com

 

 

 

댓글