🏃♂️ 들어가기 앞서..
본 게시물은 스터디 활동 중에 작성한 게시물로 자바의 정석-기초편 교재를 학습하여 정리하는 글입니다.
※ 스터디 Page : 〔투 비 마스터 : 자바〕
*해당 교재의 목차 순서와 구성을 참고하여 작성하며
각 내용마다 부족할 수 있는 내용이나 개인적으로 궁금한 점은
추가적인 검색을 통해 채워나갈 예정입니다.
<
java.text
패키지 _DecimalFormat
,SimpleDateFormat
>
' 숫자 ' , ' 날짜 ', ' 텍스트 ' 데이터를
일정한 형식(Fattern)에 맞게 문자열로 표현할 수 있도록 해준다.
정의된 패턴에 맞춰 형식화하는 것과 더불어
"형식화된 데이터"에서 본래 값을 얻어낼 수 도 있다.
" 10진수 숫자 " 를 형식화 할 때, 사용
▶ '정수' / '부동소수점' / '금액' 등 다양한 형식
/* 숫자 -> 원하는 형식의 문자열 */
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() ; // result = "1.2E6"
《 숫자 -> 원하는 형식의 문자열 》
new DecimalFormat( [패턴] )
: 생성자
.format
: Decimal 형식화 객체를 형식 문자열 적용
《 형식 문자열 -> 숫자 》
<Number타입> = (DecimalFormat).parse( [패턴적용 문자열] )
: DecimalFormat의 패턴값이 적용된 값 parsing
<기본형> = (Number타입).~Value()
: 원본 기본형 값으로 변환
parse(String source)
= NumberFormat (DecimalFormat 조상 ) 에 정의된 메서드- Number 클래스 = 숫자 저장 래퍼 클래스의 조상
- 숫자 기본형 값 변환 메서드
doubleValue()
/intValue()
/floatValue()
.. → " Number클래스에 정의되어 있음 "
기호 | 의미 |
---|---|
0 | 10진수 ( 값 없을 때 : 0 ) |
# | 10진수 |
. | 소수점 |
- | 음수 부호 |
, | 단위 구분 |
E | 지수 |
; | 패턴 구분 |
% | 퍼센트 |
`\u2030 | 퍼밀 (퍼센트 * 10) |
\u00A4 | 통화 |
' | escape문자 |
" 날짜 / 시간 " 을 다양한 형식으로 출력하려할 때, 사용
/* 문자열 -> Date객체 -> 원하는 형식의 Date 문자열 */
// 서로 다른 형식을 갖는 SimpleDateFormat
/* parsing 용 */
DateFormat df = new SimpleDateFormat("yyyy년 MM월 dd일") ; // 새로운 패턴 DateFormat 인스턴스 생성
/* formating 용 */
DateFormat df2 = new SimpleDateFormat("yyyy/MM/dd") ; // 새로운 패턴 DateFormat 인스턴스 생성
Date d = df.parse("2022년 02월 12일") ; // 날짜 문자열 "Date"로 변환
String result = df2.format(d) ; // 2022/02/12 로 formating
기호 | 의미 |
---|---|
G | 연대 (BC / AD) |
y | 연도 |
M | 월 |
w | (연중) 주 |
W | (월중) 주 |
D | (연중) 일 |
d | (월중) 일 |
F | (월중) 요일 번째 |
E | 요일 : 한글 |
a | AM/PM |
H | 시간 (0~23) |
k | 시간 (1~24) |
K | 시간 (0~11) |
h | 시간 (1~12) |
m | 분 |
s | 초 |
S | 1/1000초 (0~999) |
z | TimeZone (General) |
Z | TimeZone (RFC 822) |
※ 추가적인 Format은 Java API 문서 참고
메서드들과 사용방법이
" DecimalFormat " 의 경우와 유사하다.