Java
[Java] SimpleDateFormat()
codeStudy123
2022. 3. 6. 21:52
Date와 Calendar만으로 날짜 데이터를 원하는 형태로 다양하게 출력하는 것은 불편하다.
그런 불편함을 해소하고자 만들어진 것이 SimpleDateFormat이다.
- 날짜와 시간을 다양한 형식으로 출력할 수 있게 해 준다.
import java.text.SimpleDateFormat;
import java.util.Date;
public class DecimalClass {
public static void main(String[] args){
Date today = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(today));
}
}
2022-03-06
기호 | 의미 | 보기 |
G | 연대(BC~AD) | AD |
y | 년도 | 2006 |
M | 월(1~12 또는 1월~12월) | 10 또는 10월, OCT |
w | 년의 몇 번째 주(1~53) | 50 |
W | 월의 몇 번째 주(1~5) | 4 |
D | 년의 몇 번째 일(1~366) | 155 |
d | 월의 몇 번째 일(1~31) | 20 |
F | 월의 몇 번째 요일(1~5) | 1 |
E | 요일 | 화 |
a | 오전/오후(AM,PM) | PM |
날짜
기호 | 의미 | 보기 |
H | 시간(0~23) | 21 |
k | 시간(1~24) | 21 |
h | 시간(1~12) | 9 |
K | 시간(0~11) | 21 |
m | 분(0~59) | 23 |
s | 초(0~59) | 40 |
S | 천분의 일초(0~999) | 450 |
z | Time zone(General time zone) | GMT+9:00 |
Z | Time zone(RFC 882 time zone) | +0900 |
시간
반대로 문자열에서 날짜와 시간을 뽑아낼 수 있다.
DecimalFormat이랑 똑같다. 문자열을 날짜와 시간으로 바꿀 때는 parse를 사용한다.
import java.text.SimpleDateFormat;
import java.util.Date;
public class DecimalClass {
public static void main(String[] args){
Date today = new Date();
SimpleDateFormat sdf1, sdf2, sdf3, sdf4,
sdf5, sdf6, sdf7, sdf8, sdf9;
sdf1 = new SimpleDateFormat("yyyy-MM-dd");
sdf2 = new SimpleDateFormat("''yy년 M월 d일 E요일");
sdf3 = new SimpleDateFormat("yyyy-MM-dd H:m:s.SSS");
sdf4 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
sdf5 = new SimpleDateFormat("오늘은 올 해의 D번째 날입니다.");
sdf6 = new SimpleDateFormat("오늘은 이 달의 d번째 날입니다.");
sdf7 = new SimpleDateFormat("오늘은 올 해의 w번째 주입니다.");
sdf8 = new SimpleDateFormat("오늘은 이 달의 W번째 주입니다.");
sdf9 = new SimpleDateFormat("오늘은 이달의 F번째 E요일입니다.");
System.out.println(sdf1.format(today));
System.out.println(sdf2.format(today));
System.out.println(sdf3.format(today));
System.out.println(sdf4.format(today));
System.out.println(sdf5.format(today));
System.out.println(sdf6.format(today));
System.out.println(sdf7.format(today));
System.out.println(sdf8.format(today));
System.out.println(sdf9.format(today));
}
}
2022-03-06
'22년 3월 6일 일요일
2022-03-06 21:36:7.717
2022-03-06 09:36:07 오후
오늘은 올 해의 65번째 날입니다.
오늘은 이 달의 6번째 날입니다.
오늘은 올 해의 11번째 주입니다.
오늘은 이 달의 2번째 주입니다.
오늘은 이달의 1번째 일요일입니다.
Calendar클래스와 SimpleDateFormat
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DecimalClass {
public static void main(String[] args){
SimpleDateFormat df = new SimpleDateFormat("yyyy년 MM월 dd일");
SimpleDateFormat df2 = new SimpleDateFormat("오늘은 E요일입니다.");
Calendar cal = Calendar.getInstance();
cal.set(2022,4,8);
String str = df.format(cal.getTime());
String str2 = df2.format(cal.getTime());
System.out.println(str);
System.out.println(str2);
}
}
2022년 05월 08일
오늘은 일요일입니다.