개인 공부 정리 목적입니다.
참고 : Java의 정석(남궁성)
0 -> 0을 표현한다.
# -> 0을 표현하지 않는다.
, -> 단위 구분자(1000단위)
; -> 패턴 구분자
이건 예시를 좀 들자면 ,
#,###.##+;#,###.##-
양수일 때 적용 형식과 음수일 떄 적용 형식을 ;로 구분.
\u00A4 -> 통화 표시
double num = 123.45;
DecimalFormat df = new DecimalFormat("#.##");
String result = df.format(num);
만일 , 숫자와 기호를 포함한 문자열을 숫자로 바꾸고자 할 경우,
Number count = df.parse("9,999.99");
double num = count.doubleValue();
parse 메소드는 DecimalFormat의 조상인 NumberFormat에 정의된 메소드라고 한다.
return 값이 Number이다.
참고:
Number은 Long , Integer 같은 숫자 타입을 저장하는 wrapper 클래스의 조상 클래스이다.
Number 클래스에는 intValue(), doubleValue()같은 메소드를 이용하여 기본 타입의 자료형으로 변환할 수 있는 메소드가 정의되어 있다.
y , M -> 년 , 월 , 일
D , d -> 해 기준 일 , 월 기준 일
E -> 요일 ex) 월 ,화
a -> 오전/오후 ex) PM
H , h -> 시간 (0~23) , 시간(1~12)
k(소) , K(대) -> 시간(1~24) , 시간(0~11)
m -> 분(0~59)
s -> 초(0~59)
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String result = df.format(date);
System.out.println(result);
//출력 2022-03-23
String을 Date로도 가능하다.
DateFormat df = new SimpleDateFormat("yyyy년 MM월 dd일");
Date d = df.parse("2022년 03월 23일");
format 메소드는 Date만 지원하기 때문에 , Calendar를 사용하고 싶다면 , Date로 변환해줘야 한다.
데이터를 정해진 양식에 맞게 출력할 수 있도록 도와준다.
예시
String msg = "작성자 : {0} , 제목 : {1} , 조회수 : {2}";
Object [] arguments = {
"블라블라" , "안녕하세요?" , 30
};
String result = MessageFormat.format(msg , arguments);
//출력
System.out.println(result);
작성자 : 블라블라 , 제목 : 안녕하세요? , 조회수 : 30