형식화 클래스는 java.text 패키지의 DecimalFormat, SimpleDateFormat이 있다. 숫자와 날짜를 원하는 형식으로 쉽게 출력을 할 수 있도록 바꿔준다.
DecimalFormat
숫자를 형식화할 때 사용(숫자 => 형식 문자열)
double number = 1234567.89; // 10진수
DecimalFormat df = new DecimalFormat("#.#E0"); // 지수를 사용한 형식 문자열을 지정
String result = df.format(number); // 10진수를 지정한 형식의 문자열로 변환해준다.
// 12.E6
기호 | 의미 | 패턴 | 결과(1234567.89) |
0 | 10진수(값이 없을 때는 0) | 0 0.0 0000000000.0000 |
12345678 1234567.9 0001234567.8900 |
# | 10진수 | # #.# ##########.#### |
12345678 1234567.9 1234567.89 |
E | 지수기호 | #.#E0 0.0E0 0.000000000E0 00.00000000E0 #.########E0 ##.#######E0 |
1.2E6 1.2E6 1.234567890E6 12.34567890E5 1.23456789E6 12.3456789E6 |
- 특정 형식 문자열을 숫자로 변환할 때 사용 (형식 문자열 => 숫자)
- 문자열이 있을 때 문자열이 어떤 형식인지 알려준다면 숫자로 변환해준다.
DecimalFormat df = new DecimalFormat("#,###.##");
Number num = df.parse("1,234,567.89");
double d = num.doubleValue();
// 1234567.89
SimpleDateFormat
날짜와 시간을 다양한 형식으로 출력할 수 있게 해준다.
Date today = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String result = df.format(today);
// 2023-10-2
날짜 기호
기호 | 의미 | 보기 |
G | 연대(BC,AD) | AD |
y | 년도 | 2020 |
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 = new Date(); // 1. Date의 인스턴스 생성
// Mon Oct 02 16:52:04 KST 2023
String ds = df.format(d); // 2. df 형식 문자열 생성
// 2023년 10월 02일
Date d2 = df.parse(ds); // 3. df 형식 문자열로 새로운 Date 인스턴스 생성
// Mon Oct 02 00:00:00 KST 2023
String result = df2.format(d2); // 4. df2 형식으로 다시 문자열을 생성
System.out.println(result);
// 2023-10-2
시간 기호
기호 | 의미 | 보기 |
a | 오전/오후(AM/PM) | PM |
H | 시간(0~23) | 20 |
시간(1~24) | 13 | |
시간(0~11) | 10 | |
h | 시간(1~12) | 11 |
m | 분(0~59) | 35 |
s | 초(0~59) | 50 |
S | 천분의 일초(0~999) | 253 |
z | Timezome(General time zone) | GMT+9:00 |
Z | Time zone(RFC 822 time zone) | +0900 |
` | escape문자(특수문자를 표현하는데 사용) | 없음 |
'Java' 카테고리의 다른 글
[JAVA] 컬렉션 프레임웍(collections framework)와 핵심 인터페이스 (0) | 2023.11.08 |
---|---|
[JAVA] List 인터페이스 (0) | 2023.11.07 |
[JAVA] 유용한 클래스(Math클래스, 래퍼클래스, Number클래스) (0) | 2023.11.04 |
[JAVA] 날짜와 시간 그리고 Calendar 클래스 (0) | 2023.11.02 |
[JAVA] 래퍼(Wrapper)클래스와 박싱 & 언박싱 (Boxing & UnBoxing) (0) | 2023.11.02 |