읽은 책 정리/자바의정석 3판

[Java] Chapter10 날짜와 시간 & 형식화

포포015 2021. 3. 28. 23:26

1. 날짜와 시간

 

1.1 Calendar와 Date

1) Date 클래스( Date는 대부분 메서드가 'depreated'가 되어 있으므로 잘 사용 안한다.)

2) Calendar 클래스

3) java.time 패키지 순으로 기존 단점을 개선한 기술이 나옴.

 

- Calendar 는 추상 클래스이기때문에, 직접객체 생성 X (get 메서드로 구현된 클래스 인스턴스 가져오기)

                                                              > Calendar cal = Calender.getInstanc();

 

- Calender 클래스 사용

 ( 시간설정은 set 으로도 가능, 시간 추가는 add메서드 사용)

 두개의 날짜가 있을때, 시간차이를 비교하려면 서로 모두 초로 변경하고 초끼리 뺴고 , 나누기 1000을 해준다.

1
2
3
4
Calendar today = Calendar.getInstance(); //현재시간을 가져옴(추상클래스이므로 메서드로 객체가져오기)
log.info(today.get(Calendar.YEAY)) //메서드로 시간가져오기
 
 
cs

 

2. 형식화 클래스

java.text 패키지에 포함되어 있으며 숫자,날짜,텍스트 데이터를 일정한 형식에 맞게 표현할수 있는방법 제공.

 

2.1 DecimalFormat

- 숫자 데이터를 정수,부동소수점, 금액등의 다양한 형식으로 표현가능 (패턴으로 정의)

 

2.2 SimpleDateFormat

- Date 와 Calendar 만으로 날짜 데이터를 원하는 형태로 출력 ( 출력 형태 패턴)

 

2.3 ChoiceFormat

- 특정범위에 속하는 값을 문자열로 변환해줌.

 

2.4 MessageFormat

- 데이터를 정해진 양식에 맞게 출력할수 있도록 도와준다

 (데이터가 들어갈 자리를 마련해놓은, 양식을 미리 작성하고 프로그램을 이용해서

 다수의 데이터를 같은 양식으로 출력할때 좋다)

 

3. Java.time 패키지

Date와 Calendar가 가지고 있던 단점들을 해소하기 위해 나온 패키지.

4개의 하위 패키지가 있다. 4개의 하위 패키지는 String 처럼 불편 (변경X 새로운 객체 반환)

 

3.1 Java.time 패키지의 핵심 클래스

날짜와 시간을 하나로 표현하는 Canlerdar 클래스와 달리 

java.time 패키지에는 날짜와 시간을 별도의 클래스로 분리해놈

시간 표현          -  LocalTime 클래스

날짜 표현          - LocalDate 클래스

날짜 + 시간 표현 - LocalDateTime클래스