공부일기/JAVA

JAVA 공부일기1-11

고다나 2023. 4. 29. 03:09
Java의 정석 기초편
Chapter10 날짜와 시간 형식화

 

1.  Calendar클래스

Calendar는 추상클래스이기 때문에 직접 객체 생성 불가. 메서드를 통해 완전히 구현된 클래스의 인스턴스를 얻어야함.

Calendar cal = new Calendar(); (x)

Calendar cal = Calendar.getInstance(); (o)

getInstance()는 태국인 경우에는 BuddhistCalendar 인스턴스를 반환, 그 외에는 GregorianCalendar 인스턴스 반환.

→ 메서드를 통해서 인스턴스를 얻어오면 새로운 역법이 추가될 경우, getInstance()의 내용은 변경해야겠지만, 인스턴스를 생성하는 부분이 변경할 필요가 없음.

 

2. 형식화 클래스

java.text패키지에 포함. 숫자, 날짜, 텍스트 데이터를 일정한 형식에 맞게 표현. 데이터를 정의된 패턴에 맞춰 형식화 할 수 있을 뿐만 아니라 역으로 형식화된 데이터에서 원래의 데이터를 얻어낼 수도 있음.

 

DecimalFormat: 숫자 형식화 클래스. 원하는 출력형식의 패턴을 작성해 인스턴스를 생성한 다음, 출력하고자 하는 문자열로 format 메서드 호출.

double number = 1234567.89;

DecimalFormat df = new DecimalFormat("#.#E0");

String result = df.format(number); // result = "1.2E6"

 

SimpleDateFormat: 원하는 출력형식의 패턴을 작성해 인스턴스를 생성한 다음, 출력하고자 하는 Date인스턴스를 가지고 format(Date d)를 호출하면 지정한 출력형식에 맞게 변환된 문자열을 얻음.

Date today = new Date();

SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd");

String result = df.format(today); // result = 2023-04-29