본문 바로가기
Language/java

[Java] 날짜와 시간 (Calendar와 Date)

by gamxong 2022. 7. 20.

Calendar와 GregorianCalendar

 

- Calendar는 추상클래스이기 때문에 직접 객체 생성 불가, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 함.

 

Calendar cal = new Calendar();  // 에러 추상클래스는 인스턴스 생성 불가

Calendar cal = Calendar.getInstance();
// getInstance() 메서드는 Calendar 클래스를 구현한 클래스의 인스턴스 반환

* getInstance() 메서드가 static인 이유

1. 메서드 내의 코드에서 인스턴스 변수를 사용하거나 인스턴스 메서드를 호출하지 않기 때문

2. static이 아니면 객체를 생성한 다음에 호출해야 하는데 Calender는 추상클래스이기 때문에 객체생성할 수가 없어서

 

 

Date와 Calendar간의 변환

 

1. Calendar를 Date로 변환
Calendar cal = Calendar.getInstance();
...
Date d = new Date(cal.getTimeInMillis());

2. Date를 Calendar로 변환
Date d= new Date();
...
Calendar cal = Calendar.getInstance();
cal.setTime(d)

 

 

boolean isLeapYear(int year)
 : 매개변수가 year가 윤년이면 true를 그렇지 않으면 false를 반환

int dayDiff(int y1, int m1, int d1, int y2, int m2, int d2)
 : 두 날짜간의 차이를 일단위로 반환

int getDayOfWeek(int year, int month, int day)
 : 지정한 날짜의 요일을 반환

String convertDaytoDate(int day)
 : 일 단위의 값을 년월일의 형태의 문자열로 변환하여 반환

int convertDateToDay(int year, int month, int day)
: 년월일을 입력받아서 일단위로 변환

 

댓글