자바의정석 ch10

soso·2023년 2월 21일
0
post-thumbnail

Chapter10 날짜와 시간 & 형식화

날짜와 시간

java.util.Date
날짜와 시간을 다룰 목적으로 만들어진 클래스(JDK1.0부터 제공)이다.

java.util.Calender
Date클래스를 개선한 새로운 Calendar클래스가 왔지만 여전히 단점이 존재한다.
java.time패키지
Date와 Calender의 단점을 개선한 새로운 클래스들을 제공한다.

Calendar클래스

Calendar는 추상클래스이므로 getInstance()를 통해 구현된 객체를 얻어야 한다.

Calendar cal = new Calendar(); // 에러!! 추상클래스는 인스턴스를 생성할 수 없다.

// OK, getInstance()메서드는 Calendar클래스를 구현한 클래스의 인스턴스를 반환한다.
Calendar cal = Calendar.getInstance();

Date와 Calendar간의 변환

Calendar가 추가되면서 Date의 대부분 메서드가 'deprecated'되었지만, 여전히 Date를 필요로 하는 메서드들이 있기 때문에 Calendar를 Date로 도는 반대로 변환할 일이 생긴다.

1. Calendar를 Date로 변환
Calendar cal = Calendar.getInstance();
...
Date d = new Date(cal.getTimeInMillis()); // Date(long date)

2. Date를 Calendar로 변환
Date d = new Date();
...
Calendar cal = Calendar.getInstance();
cal.setTime(d)

형식화 클래스

숫자와 날짜를 원하는 형식으로 쉽데 출력 가능하다.(숫자, 날짜 → 형식 문자열)

형식화 클래스는 java. text패키지에 포함되어 있으며 숫자, 날짜, 텍스트 데이터를 일정한 형식에 맞게 표현할 수 있는 방법을 객체지향적으로 설계하여 표준화하였다.

형식화 클래스는 형식화에 사용될 패턴을 정의하는데, 데이터를 정의된 패턴에 맞춰 형식화 할 수 있을 뿐만 아니라 역으로 형식화된 데이터에서 원래의 데이터를 얻어낼 수도 있다.

형식화 클래스는 형식화에 사용될 패턴을 정의하는데, 데이터를 정의된 패턴에 맞춰 형식화 할 수 있을 뿐만 아니라 역으로 형식화된 데이터에서 원래의 데이터를 얻어낼 수도 있다.

DecimalFormat

형식화 클래스 중에서 숫자를 형식화 하는데 사용되는 것이 DecimalFormat이다.
DecimalFormat을 이용하면 숫자 데이더를 정수, 부동소수점, 근액 등의 다양한 형식으로 표현할 수 있으며, 반대로 일정한 형식의 데이터를 숫자로 쉽게 변환하는것도 가능하다.

SimpleDateFormat

Date와 Calendar만으로 날짜 데이터를 원하는 형태로 다양하게 출력하는것은 불편하고 복잡하지만 SimpleDateFormat을 사용하면 간단하다.

profile
오늘의 기록

0개의 댓글