날짜와 시간을 다룰 목적으로 JDK 1.0부터 Date 클래스가 제공되었으나 기능이 빈약하여 JDK1.1부터 Calendar 클래스를 제공했다.
하지만 Calendar에도 윤초를 고려하지 않고, month를 나타낼 때 1~12월을 0~11로 표현해야하는 등 여러 불편함이 있었다.
그래서 JDK 1.8부터 java.time 패키지라고 기존의 단점들을 개선한 새로운 클래스가 추가되었다.
하지만 Calendar는 20년 넘게 사용되어왔고 지금도 쓰는 곳이 있어 간단하게나마 알고 넘어가야한다.
Calendar는 추상클래스이기때문에 직접 객체를 생성할 수 없고 메서드를 통해 완전히 구현된 클래스의 인스턴스를 얻어야 한다. 기본적으로 현재날짜와 시간으로 설정.
Calandar today = Calander.getInstance();
활용 예
Calendar today = Calendar.getInstance();
System.out.println(today.get(Calendar.YEAR))
인스턴스.get(Calendar.원하는정보대문자로)
YEAR, MONTH, DATE, WEEK_OF_YEAR, HOUR등..
원하는 날짜나 시간으로 설정하려면 set()을 사용하면 된다.
주의할 점은 month를 나타낼 때 1~12월을 0~11로 표현한다.
: java.text패키지에 포함되어 있다. 숫자를 다양한 형식(패턴)으로 출력할 수 있게 해준다.
DecimalFormat : 형식화 클래스 중 숫자를 형식화하는데 사용되는 것.
SimpleDateFormat : 날짜의 형식화.
MessageFormat : 텍스트의 형식화.
: Calendar 패키지의 단점을 보완하기위해 JDK 1.8부터 추가된 패키지
이 패키지에 속한 클래스들은 모두 불변.
LocalDate today = LocalDate.now(); // 오늘의 날짜
LocalTime now = LocalTime.now(); // 현재 시간
LocalDate birthDate = LocalDate.of(1993, 05, 16) // 1993년 5월 16일
LocalTime birthTime = LocalTime.of(23, 59, 59) // 23시 59분 59초
LocalDate birthDate2 = LocalDate.of(1993, 365) // 1993년 12월 31일. 일단위도 가능
더 자세한 내용은 여기 참고