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 |
728x90
'JAVA' 카테고리의 다른 글
StringUtils.equals() 와 String.equals()의 비교 (0) | 2022.12.23 |
---|---|
LocalDateTime 으로 시간관련 변환 정리 (0) | 2022.12.19 |
람다식 중간연산 정리 (map, filter, reduce, collect) (0) | 2022.10.19 |
map() 과 flatMap() 의 차이 (2) | 2022.09.22 |
GSON 라이브러리에 대해(편리한 JSON 변환에 관해) (0) | 2022.09.15 |