출처 - Java의 정석 기초편 (남궁 성)
1. 형식화 클래스
- java.text패키지의 DecimalFormat(숫자 형식화), SimpleDateFormat(날짜 형식화)
- 데이터 ↔ 형식화된 데이터
2. DecimalFormat
- 숫자(parse) ↔ 형식화(format)
- Integer.parselnt()는 콤마(,)가 포함된 문자열 → 숫자 변환 불가
- 숫자 → 형식 문자열
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 // 1234568
0.0 // 1234567.9
0000000000.0000 // 0001234567.8900
# // 1234568
#.# // 1234567.9
##########.#### // 1234567.89
#.#E0 // 1.2E6
0.0E0 // 1.2E6
0.000000000E0 // 1.234567890E6
00.00000000E0 // 12.34567890E5
#.#########E0 // 1.23456789E6
##.########E0 // 1.23456789E6
3. SimpleDateFormat
- 날짜와 시간(parse) ↔ 형식화(format)
- 날짜와 시간 → 형식 문자열
Date today = new Date(); // 현재의 시간과 날짜
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String result = df.format(today);
- 형식 문자열 → 날짜와 시간
DateFormat df1 = new SimpleDateFormat("yyyy년 MM월 dd일");
DateFormat df2 = new SimpleDateFormat("yyyy/MM/dd");
try {
Date d = df1.parse("2022년 10월 26일");
System.out.println(df2.format(d)); // 2022/10/26
} catch(Exception e) {} // 지정된 형식과 입력된 형식 불일치 대비 예외처리 필요
- 날짜
G // 연대(BC, AD)
y // 년도
M // 월(1~12 또는 1월~12월)
w // 년의 몇 번째 주(1~53)
W // 월의 몇 번째 주(1~5)
D // 년의 몇 번째 일(1~366)
d // 월의 몇 번째 일(1~31)
F // 월의 몇 번째 요일(1~5)
E // 요일(월~일)
- 시간
a // 오전/오후(AM/PM)
H // 시간(0~23)
h // 시간(1~12)
m // 분(0~59)
s // 초(0~59)
S // 천분의 일초(0~999)
' // escape문자(특수문자를 표현하는데 사용)
'Java' 카테고리의 다른 글
ArrayList, LinkedList (0) | 2022.10.27 |
---|---|
컬렉션 프레임웍(collections framework) (0) | 2022.10.27 |
날짜와 시간 (0) | 2022.10.25 |
Object클래스 - Math클래스, 래퍼 클래스, Number클래스, 오토박싱, 은박인 (0) | 2022.10.12 |
Object클래스 - StringBuffer, StringBuilder (0) | 2022.10.11 |