deprecated 로 처리되어 있으므로 현재 사용되지 않지만, 기존에 제공되는 API 들의 대다수가 Date 타입을 사용하고 있음yyyy는 년, MM은 월, dd는 일을 표현한다.hh는 시간, mm은 분, ss는 초를 표현하며 a는 오전/오후 를 표현한다.zzz는 TimeZone을 나타낸다. Date date = new Date();
// toString() 메소드를 이용하여 현재 시간을 문자열로 구한다.
System.out.println(date.toString());
// java.util.SimpleDateFormat 클래스로 원하는 형태로 출력하기
SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println(ft.format(date));
출력 > Wed Nov 09 15:24:52 KST 2022
getInstnace()를 사용해야 한다.getInstance()메소드를 호출하면 내부적으로 java.util.GregorianCalendar 인스턴스를 만들어서 리턴한다.GregorianCalendar는 Calendar의 자식 클래스이다. (음력, 유대력 등등 다양한 달력이 존재)Calendar cal = Calendar.getInstance();
int yyyy = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 월은 0부터 시작
int date = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
cal.add(Calendar.HOUR, 5); // 5시간 뒤
cal.add(Calnedar.MONTH, -1); // 1달 전
Calendar 클래스의 주요 상수
| 주요 상수 | 설명 |
|---|---|
| Calendar.YEAR | 현재 년도 |
| Calendar.MONTH | 현재 월 (1월: 0) |
| Calendar.DATE | 현재 월의 날짜 |
| Calendar.WEEK_OF_YEAR | 현재 년도의 몇째 주 |
| Calendar.WEEK_OF_MONTH | 현재 월의 몇째 주 |
| Calendar.DAY_OF_YEAR | 현재 년도의 날짜 |
| Calendar.DAY_OF_MONTH | 현재 월의 날짜 |
| Calendar.DAY_OF_WEEK | 현재 요일(일요일:1 ,토요일: 7) |
| Calendar.HOUR | 현재 시간 (12시간제) |
| HOUR_OF_DAY | 현재 시간 (24시간제) |
| Calendar.MINUTE | 현재 분 |
| Calendar.SECOND | 현재 초 |
LocalDate curDate = LocalDate.now(); // 2022-11-09
LocalDate targetDate = LocalDate.of(2022, 11, 09); // 2022-11-09
Calendar에서와 다르게 month의 상수값은 우리가 사용하는 달력과 일치한다.LocalTime curTime = LocalTime.now(); // 22:09.02.831
LocalTime targetTime = LocalTime.of(22, 8, 30); // 22:08:30 인자를 4개까지 쓸 수 있는데 nano 시간
LocalDateTime curDateTime = LocalDateTime.now();
LocalDate curDate = LocalDate.now();
LocalTime curTime = LocalTime.now();
LocalDateTime targetDateTime = LocalDateTime.of(curDate, curTime);
System.out.println(curDateTime); // 2022-11-09T16:01:28.862321
System.out.println(targetDateTime); // 2022-11-09T16:01:28.862321
새로운 API의 핵심 클래스는 오브젝트를 생성하기 위해 다양한 factory 메서드를 사용한다.
오브젝트 자기 자신의 특정 요소를 가지고 오브젝트를 생성할 경우 of 메서드를 호출하면 되고, 다른 타입으로 변경할 경우에는 from 메서드를 호출하면 된다.
LocalDateTime timePoint = LocalDateTime.now(); // 현재의 날짜와 시간
// // 원하는 시간으로 time객체 생성하기
// 2012년 12월 12일의 시간에 대한 정보를 가지는 LocalDate객체
LocalDate ld1 = LocalDate.of(2012, Month.DECEMBER, 12);
// 17시 18분에 대한 LocalTime객체
LocalTime lt1 = LocalTime.of(17, 18); // 17:18
// 10시 15분 30초라는 문자열에 대한 LocalTime객체
LocalTime lt2 = LocalTime.parse("10:15:30");
// // 현재와 날짜와 시간정보를 getter메소드를 이용하여 구하기
LocalDate theDate = timePoint.toLocalDate();
Month month = timePoint.getMonth();
int day = timePoint.getDayOfMonth();
int hour = timePoint.getHour();
int minute = timePoint.getMinute();
int second = timePoint.getSecond();
System.out.println(month.getValue() + "/" + day + " " + hour + ":" + minute + ":" + second);