- java.text패키지의 DecimalFormat, SimpleDateFormat
- DecimalFormat : 숫자를 형식화
- SimpleDateFormat : 날짜를 형식화
- 숫자와 날짜를 원하는 형식으로 쉽게 출력 가능(숫자. 날짜 -> 형식 문자열)
double number = 1234567.89; DecimalFormat df = new DecimalFormat("#.#E0"); String result = df.format(number); // result = "1.2E6"
- 10진수를 지수 형식으로 바꿔서 지수표현을 해준다.
- 형식 문자열에서 숫자와 날짜를 뽑아내는 기능(형식 문자열 -> 숫자, 날짜)
DecimalFormat df = new DecimalFormat("#,###.##"); Number num = df.parse("1,123,567.89"); double d = num.doubleValue(); // 1234567.89
- 숫자를 형식화할 때 사용(숫자 -> 형식 문자열)
double number = 1234567.89; DecimalForat df = new DecimalFormat("#.#E0"); String result = df.format(number); // result = "1.2E6"
- 특정 형식의 문자열을 숫자로 변환할 때도 사용(형식 문자열 -> 숫자)
DecimalFormat df = new DecimalFormat("#,###.##"); Number num = df.parse("1,123,567.89"); // parse를 사용하면 Number타입으로 바뀐다. / Number는 모든 숫자 래퍼클래스의 최고 조상 double d = num.doubleValue(); // 1234567.89 // double 타입으로 변경
[참고] Inter.parseInt()는 콤마(,)가 포함된 문자열을 숫자로 변환 못함 (Float, parseFloat도 같다.)
- 날짜와 시간을 다양한 형식으로 출력할 수 있게 해준다.
Date today = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); // 오늘 날짜를 yyyy-MM-dd 형태로 변환하여 반환한다. String result = df.format(today);
- 특정 형식으로 되어 있는 문자열에서 날짜와 시간을 뽑아 낼 수도 있다.
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);
- 문자열 -> 날짜와 시간 : parse() 사용
- 문자열 <- 날짜와 시간 : format() 사용
- parse로 문자열에서 날짜를 추출한다.
- format을 통해 날짜를 다시 문자열로 변경하였다.
- 대문자 H / h / m / s / S 를 많이 사용한다.