[JAVA] 형식화

DongGyu Jung·2022년 2월 11일
0

자바(JAVA)

목록 보기
29/60
post-thumbnail

🏃‍♂️ 들어가기 앞서..

본 게시물은 스터디 활동 중에 작성한 게시물로 자바의 정석-기초편 교재를 학습하여 정리하는 글입니다.
※ 스터디 Page : 〔투 비 마스터 : 자바〕

*해당 교재의 목차 순서와 구성을 참고하여 작성하며
각 내용마다 부족할 수 있는 내용이나 개인적으로 궁금한 점은
추가적인 검색을 통해 채워나갈 예정입니다.



형식화 클래스

< java.text패키지 _ DecimalFormat, SimpleDateFormat >

' 숫자 ' , ' 날짜 ', ' 텍스트 ' 데이터를
일정한 형식(Fattern)에 맞게 문자열로 표현할 수 있도록 해준다.

정의된 패턴에 맞춰 형식화하는 것과 더불어

"형식화된 데이터"에서 본래 값을 얻어낼 수 도 있다.

❗ DecimalFormat

" 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클래스에 정의되어 있음 "

기호의미
010진수
( 값 없을 때 : 0 )
#10진수
.소수점
-음수 부호
,단위 구분
E지수
;패턴 구분
%퍼센트
`\u2030퍼밀 (퍼센트 * 10)
\u00A4통화
'escape문자


❗ SimpleDateFormat

" 날짜 / 시간 " 을 다양한 형식으로 출력하려할 때, 사용

/* 문자열 -> 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요일 : 한글
aAM/PM
H시간 (0~23)
k시간 (1~24)
K시간 (0~11)
h시간 (1~12)
m
s
S1/1000초 (0~999)
zTimeZone (General)
ZTimeZone (RFC 822)

※ 추가적인 Format은 Java API 문서 참고

메서드들과 사용방법이
" DecimalFormat " 의 경우와 유사하다.

0개의 댓글