본문 바로가기
JAVA

[JAVA] Calendar, SimpleDateFormat 클래스

by Amy IT 2022. 5. 29.

◆ Calendar 클래스

 

자바에서 날짜 데이터를 처리하기 위해 Calendar 클래스와 Date 클래스를 사용합니다. 하지만 Date 클래스 내 많은 메소드가 deprecated 되었기 때문에 날짜 조작은 주로 Calendar 클래스를 이용합니다. 

 

다음은 Calendar 클래스의 주요 상수와 메소드입니다.

 

상수 설명
Calendar.YEAR 년도 반환
Calendar.MONTH 월 반환 (0~11)
Calendar.DAY_OF_MONTH 일 반환
Calendar.DAY_OF_WEEK 요일 반환
Calendar.AM_PM 오전/오후 반환
Calendar.HOUR 시간 반환
Calendar.MINUTE 분 반환
Calendar.SECOND 초 반환

 

메소드 설명
getTime() 현재날짜를 Date 타입으로 반환
setTime() Date 객체를 이용해 날짜 설정
getTimeInMillis() Calendar의 시간을 밀리초로 반환
setTimeInMillis() Calendar의 시간을 밀리초로 설정
get() 상수값을 사용하여 해당값을 반환
set() 상수값을 사용하여 해당값을 설정

 

Calendar cal = Calendar.getInstance(); //Calendar 객체 받아옴
//년,월,일 구하기
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; //0~11
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"년 "+month+"월 "+day+"일");
//시,분,초 구하기
int hour = cal.get(Calendar.HOUR_OF_DAY); //0~23
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
System.out.println(hour+"시 "+minute+"분 "+second+"초");

 

//특정 날짜 설정하기
Calendar cal2 = Calendar.getInstance();
//month의 경우 0부터 시작하기때문에 12월인 경우 11로 지정해야함
cal2.set(2022, 11, 24);
System.out.println(cal2.getTime());
//날짜 변경
System.out.println("= 1일 후 =");
cal2.add(Calendar.DATE, 1); 
System.out.println(cal2.getTime());
System.out.println("= 6달 전 =");
cal2.add(Calendar.MONTH, -6);
System.out.println(cal2.getTime());
System.out.println("= 오늘로부터 100일 후 =");
cal.add(Calendar.DATE, 100);
System.out.println(cal.getTime());

 

 

 

◆ SimpleDateFormat 클래스

 

SimpleDateFormat 클래스를 이용하면 Date 클래스에서 얻은 날짜 데이터를 특정 형식에 맞게 변경하여 출력할 수 있게 됩니다. 

 

다음은 주요 형식 문자입니다.

 

형식 문자 기능
y 년도 표시
M 월 표시
d 일 표시
H 시간 표시 (0~23)
h 시간 표시 (1~12)
m 분 표시
s 초 표시
a AM/PM 표시

 

//Date --> String
Date d = new Date(); //현재 날짜
System.out.println(d);
SimpleDateFormat sdf = //SimpleDateFormat으로 형식을 만들어놓음
		new SimpleDateFormat("yyyy년 MM월 dd일 HH:mm:ss");
String mesg = sdf.format(d); //format()에 현재 날짜 객체 전달
System.out.println(mesg); // Date 객체를 형식에 맞게 문자열로 반환

 

//String --> Date
SimpleDateFormat sdf2 =
		new SimpleDateFormat("yyyy년 MM월 dd일");
Date d2 = sdf2.parse("2022년 06월 01일"); //parse()에 문자열 전달
System.out.println(d2);

 

 

 

댓글