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);