◆ 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);
'JAVA' 카테고리의 다른 글
[JAVA] enum (열거형 상수) (0) | 2022.05.30 |
---|---|
[JAVA] Scanner (스캐너) 클래스 (0) | 2022.05.29 |
[JAVA] Wrapper (래퍼) 클래스 (0) | 2022.05.29 |
[JAVA] StringTokenizer, split(), toCharArray() (0) | 2022.05.29 |
[JAVA] StringBuffer 클래스 (StringBuilder) (0) | 2022.05.28 |
댓글