- java.text패키지의 DecimalFormat, SimpleDateFormat
- 숫자와 날짜를 원하는 형식으로 쉽게 출력 가능(숫자, 날짜 -> 형식 문자열)
double number = 1234567.89; DecimalFormat df = new DecimalFormat("#.#E0"); String result = df.format(number); // result = "1.2E6"
- 형식 문자열에서 숫자와 날짜를 뽑아내는 기능(형식 문자열 -> 숫자, 날짜)
DecimalFormat df = new DecimalFormat("#,###.##"); Number num = df.parse("1,234,567.89"); double d = num.doubleValue(); // 1234567.89
- 숫자를 형식화할 때 사용(숫자 -> 형식 문자열)
예시는 위에. 더 자세한 패턴은 책에 자세히 나와있다. 외울필요는 없다.
기호 | 의미 | 패턴 | 결과(1234567.89) |
---|---|---|---|
0 | 10진수(값이 없을 때는 0) | 0 0.0 00000000000.0000 | 1234568 1234567.9 0001234567.8900 |
# | 10진수 | # #.# #########.#### | 1234568 1234567.9 1234567.89 |
E | 지수기호 | #.#E0 0.0E0 0.0000000000E0 00.000000000E0 #.#########E0 ##.########E0 | 1.2E6 1.2E6 1.234567890E6 12.34567890E5 1.23456789E6 1.23456789E6 |
- 특정 형식의 문자열을 숫자로 변환할 때도 사용(형식 문자열 -> 숫자)
이것도 예시는 위에있다.(형식 문자열에서~)
[참고] Integer.parseInt()는 콤마(,)가 포함된 문자열을 숫자로 변환 못함
- 날짜와 시간을 다양한 형식으로 출력할 수 있게 해준다.
Date today = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String result = df.format(today); // 오늘 날짜를 yyyy-MM-dd로 변환
기호 | 의미 | 보기 |
---|---|---|
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) | 100 |
d | 월의 몇 번째 일(1~31) | 15 |
F | 월의 몇 번째 요일(1~5) | 1 |
E | 요일 | 월 |
- 특정 형식으로 되어 있는 문자열에서 날짜와 시간을 뽑아낼 수도 있다.
DateFormat df = new SimpleDateFormat("yyyy년 MM월 dd월"); DateFormat df2 = new SimpleDateFormat("yyyy/MM/dd"); Date d = df.parse("2015년 11월 23일"); // 문자열을 Date로 변환 String result = df2.format(d);
기호 | 의미 | 보기 |
---|---|---|
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 tine zone) | GMT+9:00 |
Z | Time zone(RFC 822 time zone) | +0900 |
` | escape문자(특수문자를 표현하는데 사용) | 없음 |