728x90
반응형
DecimalFormat
숫자를 형식화할 때 사용한다.
형식화한 후에는 int값이 아니라 String값으로 변환됨.

0, #, E를 적절히 사용하여 출력하고 싶은 format을 지정해서 출력하자
출력문: 1.22000 | 1.22
double i = 1.22;
DecimalFormat df = new DecimalFormat("0.00000");
DecimalFormat df2 = new DecimalFormat("#.####");
// DecimalFormat df2 = new DecimalFormat("#.##00"); // 오류발생
// 뒤에 소수점 붙일 때는 아예 0만쓰던지 #만 써야함
System.out.println(df.format(i));
// 0일 경우 10진수가 존재할 경우 그 값을 출력하고 없을 경우 0을 출력
// 1.22000
System.out.println(df2.format(i));
// #일 경우 값이 있으면 출력하고 없으면 공백 추출
// 1.22
SimpleDateFormat
날짜를 형식화하여 사용한다.
DecimalFormat과 동일하게 형식을 먼저 선언한 후에 Date클래스에서 받은 날짜데이터를 형식에 맞춰 출력한다.
- Date클래스를 String형식으로 출력 가능하고
- String클래스를 맞춰진 형식을 기준으로 Date클래스로 변환이 가능하다
- 이 때 형식의 기호(h, y등)가 맞지 않거나 대소문자가 틀리다면 잘못된 형식으로 재반환된다.
출력문:
2022-02-17
Fri Jan 07 00:00:00 KST 2022
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(d));
// 받은 Date클래스를 SimpleDateFormat으로 변환
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy년 dd월");
// 기존에 있던 SimpleDateFormat을 기준으로 가지고있는 String 클래스를 Date 클래스로 변환
// 이 때 MM과 dd는 생략이 가능한데 yyyy는 생략이 안됨
String result = "2022년 07월 17일";
try {
Date dd = sdf2.parse(result);
// parse를 사용하여 변환하는데 이 때 try & catch가 사용되어야 한다
System.out.println(dd);
} catch (ParseException e) {
e.printStackTrace();
}
728x90
반응형
'Java > 자바의정석 기초편' 카테고리의 다른 글
자바의 정석 11장 (28일차) - LinkedList (0) | 2022.02.19 |
---|---|
자바의 정석 10장 (27일차) - Collection Framework (Set/List/Map) (0) | 2022.02.18 |
자바의 정석 10장 (26일차) - Calendar 클래스 (0) | 2022.02.17 |
자바의 정석 9장 (25일차) - StringBuilder & Math (0) | 2022.02.16 |
자바의 정석 9장 (25일차) - StringBuffer 생성자 & 메서드 (0) | 2022.02.16 |