본문 바로가기
프로그래밍/JAVA

자바의 정석 기초 ( 형식화 클래스 / DecimalFormat / SimpleDateFormat )

by ✲ 2020. 8. 8.
반응형

남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 

형식화 클래스 

- java.text패키지의 DecimalFormat (10진수 숫자) , SimpleFormat (날짜 형식화) 

- 숫자와 날짜를 원하는 형식으로 쉽게 출력 가능 (숫자, 날짜 > 형식 문자열)

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

DecimalFormat 

- 숫자를 형식화할 때 사용 (숫자 > 형식 문자열) 

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"); // Number는 모든 숫자 래퍼클래스의 최고 조상
double d = num.doubleValue(); // 1234567.89
* 참고 Integer.ParseInt(), Double.parseDouble() 등 콤마(,)가 포함된 문자열을 숫자로 변환 못함

SimpleDateFormat

- 날짜와 시간을 다양한 형식으로 출력할 수 있게 해준다. 

Date today = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");
//오늘 날짜를 yyyy-MM-dd형태로 변환하여 반환한다.
String result = df.format(today);

- 특정 형식으로 되어있는 문자열에서 날짜와 시간을 뽑아낼 수 있다. 

(문자열에서 날짜는 parse , 날짜에서 문자열은 format)
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);

반응형

댓글