날짜와 시간 / Calendar 클래스

배지원·2022년 9월 30일
0

JAVA

목록 보기
22/32

1. 날짜와 시간

(1) java.util.Date

  • 날짜와 시간을 다룰 목적으로 만들어진 클래스(JDK 1.0)
  • Date의 메서드는 거의 사용금지 되었지만 여전히 사용줌(옛날부터 사용중인 곳은 사용중)

(2) java.util.Calendar

  • Date클래스르 개선한 새로운 클래스(JDK 1.1) 여전히 단점이 존재

(3) java.time패키지

  • Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공(JDK 1.8)
  • 날짜와 시간을 구분해서 사용할 수 있도록 제공(LocalData , LocalTime)

Calendar 클래스

  • 추상 클래스이므로 getinstance()를 통해 구현된 객체를 얻어야 한다.
Calendar cal = new Calendar();		// 에러 발생!! 추상클래스는 인스턴스를 생성할 수 없다.
Calendar cal = Calendar.getInstance();	// ok

(1) get( ) - int get( int field )

  • 날짜와 시간 필드 가져오기
Calendar cal = Calendar.getInstance();		// 현재 날짜와 시간으로 셋팅됨
int thisYear = cal.get(Calendar.YEAR);		// 올해가 몇년인지 알아낸다.
int lastDayOfMonth = cal.getActualMaximum(Calendar.DATE)	// 이 달의 마지막날

(2) set( )

  • 날짜와 시간 지정하기
void set(int year,int month, int date)	// Calendar 클래스에 정의된 메서드

Calendar date1 = Calendar.getInstance();	// Calenedar 객체 초기화
date1.set(2017,7,15);		// 값 입력   2017년 8월 15일 (월을 배열에 저장하기 때문에 0부터 시작함 0=1월)

Calendar time1 = Calendar.getInstance();
time1.set(Calendar.HOUR_OF_DAY, 10);	// time1을 10시 20분 30초로 설정
time1.set(Calendar.MINUTE, 20);
time1.set(Calendar.SECOND, 30);

(3) add( )

  • 특정 필드의 값을 증가 또는 감소(다른 필드에 영향 O)
Calendar date = Calendar.getInstance();
date.clear();	// 모든 필드를 초기화
date.set(2020,7,31);	// 2020년 8월 31일 설정

date.add(Calendar.DATE, 1);		// 날짜에 1을 더한다  7월31일 +1 = 8월 1일
date.add(Calendar.MONTH, -8);	// 월에서 8을 뺀다

(4) roll( )

  • 특정 필드의 값을 증가 또는 감소(다른 필드에 영향 x)
Calendar date = Calendar.getInstance();
date.clear();	// 모든 필드를 초기화
date.set(2020,7,31);	// 2020년 8월 31일 설정

date.roll(Calendar.DATE, 1);		// 날짜에 1을 더한다  7월31일 +1 = 7월 1일
date.roll(Calendar.MONTH, -8);	// 월에서 8을 뺀다
profile
Web Developer

0개의 댓글