JAVA

SimpleDataFormat 함수 사용법(feat. 날짜 관련)

쿠카이든 2022. 12. 16. 19:11
728x90
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

 

출처 : https://junghn.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%94-%EB%82%A0%EC%A7%9C-%ED%8F%AC%EB%A7%B7-%EB%B3%80%EA%B2%BD-%EB%B0%A9%EB%B2%95SimpleDateFormat-yyyyMMdd

 

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

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

junghn.tistory.com

 

728x90