ysk(0soo)
Lifealong
ysk(0soo)
전체 방문자
오늘
어제
  • 분류 전체보기 (238)
    • Java (50)
      • whiteship-java-study (11)
      • Java (28)
      • time (6)
    • Spring (68)
      • JPA (15)
      • Spring (1)
      • SpringBoot (1)
      • SpringMVC (6)
      • Spring Security (22)
      • Jdbc (1)
      • RestDocs (14)
      • log (6)
    • Kotlin (3)
    • Web (2)
      • nginx (1)
    • Database (14)
      • MySQL (5)
      • PostgreSQL (1)
      • SQL (1)
      • Redis (4)
    • C, C++ (0)
    • Git (1)
    • Docker (2)
    • Cloud (3)
      • AWS (3)
    • 도서, 강의 (0)
      • t5 (0)
    • 기타 (7)
      • 프로그래밍 (1)
    • 끄적끄적 (0)
    • CS (14)
      • 운영체제(OS) (2)
      • 자료구조(Data Structure) (9)
    • 하루한개 (12)
      • 우아한 테크코스-10분테코톡 (12)
    • 스터디 (12)
      • 클린 아키텍처- 로버트마틴 (2)
      • JPA 프로그래밍 스터디 (10)
    • 테스트 (34)
      • JUnit (19)
      • nGrinder (2)
      • JMeter (0)
    • Infra (3)
    • 프로그래머스 백엔드 데브코스 3기 (0)
    • 디자인 패턴 (3)
    • Issue (4)
    • system (1)
      • grafana (0)
      • Prometheus (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

공지사항

인기 글

태그

  • AccessDecisionManager
  • StructuredConcorrency
  • tree
  • node exporter basic auth
  • 구조화된 동시성
  • AuthenticationException
  • java
  • restdocs custom
  • FilterSecurityInterceptor
  • 가상 스레드 예외 핸들링
  • 동등성
  • 가상 스레드
  • mysql
  • nginx basic auth
  • restdocs enum
  • UserDetailsService
  • DataJpaTest
  • 트랜잭션
  • 동시성 제어
  • 동일성
  • querydsl
  • scope value
  • jpa
  • AccessDecisionVoter 커스텀
  • 정규표현식
  • LocalDateTime
  • VirtualThread Springboot
  • 인가(Authorization) 처리
  • nGrinder
  • junit5

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ysk(0soo)

Lifealong

Java/Java

Java 형식화 클래스 - Format, DecimalFormat, SimpleDateFormat

2022. 12. 8. 23:15

형식화 클래스

 

DecimalFormat

  • DecimalFormat을 이용하면 숫자 데이터를 정수, 부동소수점, 금액 등의 다양한 형식으로 표현할 수 있다.
  • 반대로 일정한 형식의 텍스트 데이터를 숫자로 쉽게 변환도 가능하다.
  • 형식화 클래스는 패턴을 정의하는 것이 전부다.
  • DecimalFormat 사용법
  • double number = 1234567.89; // 1.원하는 출력형식의 패턴을 작성하여 DecimalFormat 인스턴스를 생성 DecimalFormat df = new DecimalFormat("#.#E0"); // 2.출력하고자 하는 문자열로 format 메소드를 호출 String result = df.format(number);
  • docs : https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

 

SimpleDateFormat

  • 날짜 데이터를 원하는 형태로 다양하게 출력
  • 사용방법
    • 원하는 출력 형식의 패턴을 작성하여 SimpleDateFormat 인스턴스를 생성
    • 출력하고자 하는 Date 인스턴스를 가지고 format(Date d)를 호출
    • Date today = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String result = df.format(today); //오늘 날짜를 yyyy-MM-dd 형태로 반환
  • parse(String source)를 사용하여 날짜 데이터의 출력형식 변환 가능
  • SimpleDateFormat의 parse(String source) 는 문자열 source를 날짜 Date 인스턴스로 변환해줌
  • DateFormat df = new SimpleDateFormat("yyyy년 MM월 dd일"); DateFormat df2 = new SimpleDateFormat("yyyy/MM/dd"); Date d = df.parse("2018년 10월 3일"); System.out.println(df2.format(d)); // 2018/10/03
  • Date 인스턴스를 Calendar 인스턴스로 변환할 때는 Calendar클래스의 setTime()을 사용하면 된다.

 

Date And Time Patterns (시간과 날짜에 사용되는 패턴들)

Letter Date or Time Component Presentation Examples
G 연대(BC, AD) Text AD
y 년도 Year 1996; 96
Y 주 년 Year 2009; 09
M 올해의 달 Month July; Jul; 07
w 연중 주 (몇 번째 주) Number 27
W 월의 주 (월의 몇번째 주) Number 2
D 년의 몇 번째 일 (1~366) Number 189
d 월의 몇 번째 일(1~31) Number 10
F 월의 몇 번째 요일(1~5) Number 2
E 주의 요일 이름 Text Tuesday; Tue
u 요일 번호(1 = 월요일, ..., 7 = 일요일) Number 1
a 오전/오후(AM/PM) 마커 Text PM
H 시간(0-23) Number 0
k 시간(1-24) Number 24
K 오전/오후 시간(0-11) Number 0
h 오전/오후 시간(1-12) Number 12
m 시간의 분 Number 30
s 분당 초 Number 55
S 밀리초 Number 978
z 시간대 (General time zone) General time zone Pacific Standard Time; PST; GMT-08:00
Z 시간대 (RFC 822 timezone) RFC 822 time zone -0800, +0900
X 시간대 (ISO 8601 timezone) ISO 8601 time zone -08; -0800; -08:00
  • https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

 

ChoiceFormat

  • ChoiceFormat은 특정 범위에 속하는 값을 문자열로 변환
  • 연속적/불연속적인 범위의 값 처리에 유용(예를 들어 90점까지 A, 80점까지 B, ..)
  • 패턴을 사용할 경우 limit#value 형태로 사용
    • 구분자로 #는 경계값 포함, <는 미포함
public int someMethod(int score) {

  double[] limits = {60, 70, 80, 90}; // 낮은 값부터 큰 값의 순서로 적어야함
  // limits과 ㅎrades 간의 순서와 갯수를 맞춰야함
  String[] grades = {"D", "C", "B", "A"};

  ChoiceFormat form = new ChoiceFormat(limits, grades);

  return form.format(score);
}

MessageFormat

  • MessageFormat은 데이터를 정해진 양식에 맞게 출력할 수 있도록 도와준다
public void someMethod() {
  String msg = "Name : {0}, Tel: {1}, age:{2}, birthday:{3}";

  Object[] args = {"영수", "010-1111-1234", "28", "02-23"}

  String result = MessageFormat.format(msg, args);
}

 

참조

  • 자바의 정석
저작자표시 비영리 (새창열림)

'Java > Java' 카테고리의 다른 글

Java Collection Framework (컬렉션 프레임워크)  (0) 2022.12.31
ThreadLocal 의 사용법과 활용, 주의사항  (0) 2022.12.17
Java UUID (+ IN MySQL )  (0) 2022.12.07
예외 처리 방법(Exception Handling) - 복구, 회피, 전환  (0) 2022.12.07
예외 처리란  (0) 2022.11.27
    'Java/Java' 카테고리의 다른 글
    • Java Collection Framework (컬렉션 프레임워크)
    • ThreadLocal 의 사용법과 활용, 주의사항
    • Java UUID (+ IN MySQL )
    • 예외 처리 방법(Exception Handling) - 복구, 회피, 전환
    ysk(0soo)
    ysk(0soo)
    백엔드 개발을 좋아합니다. java kotlin spring, infra 에 관심이 많습니다. email : kim206gh@naver.com github : https://github.com/devysk

    티스토리툴바