java.util.Date
정의 - 특정 시점을 날짜가 아닌 밀리초 단위로 표현
예시 코드 - 2017년 9월 21일
Date date = new Date(117, 8l, 21);
// OUTPUT - Thu Sep 21 00:00:00 CET 2017
문제점
직관적이지 않다. Source Code만 보고 특정 시점을 추측(or 예측)하기가 어렵다.
toString으로 반환되는 문자열을 추가로 활용하기가 어렵다.
Timezone이 JVM 기본 시간대인 CET, 중앙 유럽 시간대로 설정되어 있다.
가변 클래스이다.
java.util.Calendar
문제점
1900년에서 시작하는 오프셋은 없지만, 여전히 Month의 인덱스는 0부터 시작한다.
DateFormat 같은 일부 기능은 여전히 Date 클래스에서만 동작했다.
가변 클래스이다.
DateFormat
정의 - 언어의 종류와 독립적으로 날짜와 시간의 형식을 조절하고 파싱할 때 사용된다.
문제점 - 스레드에 안전하지 않다.