java.util.Date, java.util.Calendar 클래스는 자바에서 날짜, 시간 관련 작업이나 연산을 수행하기 위한 클래스이다. 자바가 발전해감에 따라 두 클래스의 문제점이 드러나기 시작했고 JDK 1.8에서 두 클래스를 대체할 java.time 라이브러리가 등장하였다.
Date, Calendar 클래스를 사용하지 말아야 하는 이유를 나열하면 다음과 같다.
두 클래스 mutable 하기 때문에 객체의 메서드나 변수를 수정할 경우 참조하는 객체들의 값들이 변경된다.
calendar의 상수를 남용할 가능성이 있다.
월 값이 0부터 시작하여 직관적이지 않다.
timezone이 없다.
새로운 JDK가 계속 출시되면서 대부분의 메서드는 deprecated되었다.
이름은 date인데 실제로는 date와 time으로 이뤄졌다. 참고로, sql에서는 java.sql.date는 날짜만, java.sql.timestamp가 날짜+시간
자바 1.8부터는 java.time.LocalDatetime, java.time.LocalDate, Java.time.LocalTime을 쓸 것을 권장한다. 그 이전 버전의 경우에는 joda time 같은 서드파티 오픈 소스 라이브러리를 사용할 것을 추천한다.
'☕Java > Java 기본' 카테고리의 다른 글
자바 컬렉션 간 변환(Array, List, Map, Set) 정리 (0) | 2022.10.01 |
---|---|
API Docs 읽기 - 자바 String (0) | 2022.09.17 |
String, StringBuffer, StringBuilder 비교 (0) | 2022.07.24 |
SOLID 원칙 (0) | 2022.06.26 |
JCF(Java Collection Framework) 정리 (0) | 2021.12.28 |