I. Date 클래스
# 사용하기
- 기본생성자로 인스턴스를 생성하여 접근한다.
- 인스턴스 생성시 년,월,일 값을 매개변수로 전달할 수는 있지만 해당 년,월,일로 지정되지 않음.
Date day1 = new Date(); //Sun Oct 10 16:19:37 KST 2021
Date day2 = new Date(2000,5,10)//Thu Jul 05 00:00:00 KST 3900->2000년 5월 10일로 설정되지 않음.
# Date클래스 메서드
1. getYear() -> [객체의년도] - [1900] 값이 리턴됨.
-> 정상적인 객체년도값을 구하려면 +1900 처리를 해야한다.
2. getMonth() -> 1월:0 ~ 12월:11 의 값을 리턴한다.
-> 정상적인 객체의 월 값을 구하려면 +1 처리를 해야한다.
3. getDate() -> 객체의 일자를 리턴한다. 별도의 처리가 필요없음
4. getDay() -> 요일정보를 int데이터로 리턴한다. 일요일:0 ~ 토요일:6
-> switch-case문을 사용해 X요일을 리턴하도록 설정한다.
5. getTime() -> long타입데이터로 날짜정보를 리턴한다.
-> getTime()메서드를 적용한 두 객체를 뺄셈하면 두 날짜 사이의 차이를 알 수 있다.
-> long타입 데이터를 보기쉽게 수정하기
=> Math.abs( 날짜 / 1000 밀리초 -> 초 / 60 초->분 / 60 분->시 / 24 시->일 )
II. Calendar 클래스
# 사용하기
- 추상클래스이므로 인스턴스 생성이 불가능!
-> getInstance() 메서드를 사용하여 객체를 리턴받아야한다.
import java.util.Calendar;
public class Ex01 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
}}
-> get( Calendar.상수 ) 메서드를 사용하여 객체의 데이터에 접근한다.
=> 캘린더객체.get(Calendar.구하고자하는 상수데이터)
# get()메서드로 Calendar 객체에 접근하기
1. get(Calendar.YEAR)
2. get(Calendar.MONTH) -> 0부터 세므로 +1처리 필요함
3. get(Calendar.DAY_OF_MONTH) -> 일자 리턴
4. get(Calendar.DAY_OF_WEEK) -> 요일을 int형으로 리턴함. 0:일요일 ~ 6:토요일
5, get(Calendar.AM_PM) -> 오전/오후를 int형으로 리턴함. 0:오전 / 1:오후
6. get( Calendar.HOUR / HOUR_OF_DAY ) -> HOUR:12시간제, HOUR_OF_DAY: 24시간제
7. get(Calendar. MINUTE / SECOND )
# Date <-> Calendar 객체 상호변환하기
1. Calendar -> Date
: Calendar객체의 getTime() 메서드를 호출하여 Date타입으로 저장한다.
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
2. Date -> Calendar
: Calendar객체의 Setter 메서드로 Date의 값을 전달한다.
- 원하는 값을 얻기위해서는 Getter를 사용하여 접근한다.
import java.util.Calendar;
import java.util.Date;
public class Ex01 {
public static void main(String[] args) {
Date date = new Date(); // Date클래스는 인스턴스 생성이 가능함
Calendar cal = Calendar.getInstance(); //Calendar클래스는 인스턴스 생성이 불가능하므로 Getter로 접근.
cal.setTime(date);
System.out.println(cal.get(Calendar.YEAR)); //2021
}}
III. Time 패키지
# 사용하기
Date, Calendar에 비해 직관적이라서 사용하기 쉽다.
-> Calendar클래스와 동일하게, 객체 생성 없이 Getter를 통해 날짜값을 얻는다.
=> Aka "싱글톤 디자인 패턴"
# 포함 클래스
- LocalDate - 날짜
- LocalTime - 시간
- LocalDateTime - 날짜 & 시간
# 메서드
1. now() - 각 객체의 정보를 가져온다.
//1. LocalDate
LocalDate date = LocalDate.now();
//2. LocalTime
LocalTime time = LocalTime.now():
//3. LocalDateTime
LocalDateTime dt = LocalDateTime();
2. of() - 각 객체의 값을 설정한다.
//1. LocalDate
LocalDate date = LocalDate.of(2001,1,1); //2001-01-01
//2. LocalTime
LocalTime time = LocalTime.now(23,07,33): //23:07:33
//3. LocalDateTime
LocalDateTime dt = LocalDateTime(2001,1,1,23,07,33); //2001-01-01T23:07:33
3. getXXX() - XXX에 해당하는 상세 데이터를 얻는다.
- int getYear
- Month getMonth - // 영문 월 정보를 리턴한다. ex) NOVEMBER
- int getMonthValue - 별도의 연산이 필요 없이 올바른 월정보를 리턴함.
- int getDayOfMonth
- int getHour
- int getMinute
# 영문 월정보를 한국 월정보로 변환하고 싶은 경우
String Month.getDisplayName(TextStyle style, Locale locale) 메서드를 사용하면 된다.
eMonth.getDisplayName(TextStyle.SHORT, Locale.KOREAN) //11월
# 날짜, 시간 정보에 연산을 수행하는 경우
- 해당객체의 plusXXXs(), minusXXXs() 메서드를 호출하여 연산을 수행
- 대상 항목이 변경되는 연관된 다른 항목들도 연쇄적으로 변경된다.
- 따라서 항목의 값을 고정적으로 사용하고 싶다면 withXXX() 메서드를 사용할것.
- plusYears(n) - n년후 값을 리턴
- plusMonths(n) - n개월 후 값을 리턴
- plusDays(n) - n일 후 값을 리턴
'개발자 양성과정 필기노트 > JAVA' 카테고리의 다른 글
Enum (0) | 2021.11.13 |
---|---|
JFrame 이벤트처리하는 5가지 방법 (0) | 2021.11.02 |
String / StringBuffer, StringTokenizer (0) | 2021.10.10 |
Random, Arrays 클래스 (0) | 2021.10.09 |
Object클래스 내장메서드 (0) | 2021.10.09 |
댓글