java.util.Calendar 클래스는 날짜와 시간을 다루기 위한 추상 클래스로, 다양한 연산 및 필드를 제공합니다. 이 클래스는 추상 클래스이기 때문에 직접적으로 인스턴스를 생성할 수 없고, 구체적인 구현 클래스인 GregorianCalendar를 이용하여 인스턴스를 얻습니다.
주요 메서드 및 필드에 대한 설명은 다음과 같습니다.
1. Calendar 객체 생성
import java.util.Calendar;
public class CalendarExample {
public static void main(String[] args) {
// 현재 날짜와 시간을 가진 Calendar 객체 얻기
Calendar calendar = Calendar.getInstance();
}
}
2. 필드(Fields) 사용
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH); // 0부터 시작 (1월은 0, 2월은 1, ..., 12월은 11)
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24시간 형식
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
3. 필드 설정
calendar.set(Calendar.YEAR, 2022);
calendar.set(Calendar.MONTH, Calendar.AUGUST); // 7 (0부터 시작)
calendar.set(Calendar.DAY_OF_MONTH, 15);
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
4. 날짜 및 시간 연산
calendar.add(Calendar.DAY_OF_MONTH, 7); // 7일 뒤로 이동
calendar.add(Calendar.MONTH, -1); // 1달 전으로 이동
5. 날짜 비교
Calendar otherCalendar = Calendar.getInstance();
boolean isEqual = calendar.equals(otherCalendar);
int compareResult = calendar.compareTo(otherCalendar);
6. 날짜 출력
SimpleDateFormat 클래스를 이용하여 날짜를 원하는 형식으로 출력할 수 있습니다.
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CalendarExample {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(calendar.getTime());
System.out.println(formattedDate);
}
}
java.util.Calendar 클래스는 Java 8부터 새롭게 도입된 java.time 패키지의 날짜 및 시간 API에 비해 사용이 불편하고, 버그가 있을 수 있으므로 Java 8 이상을 사용한다면 java.time 패키지의 클래스들을 사용하는 것이 좋습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 형식화 클래스 (0) | 2023.11.16 |
---|---|
자바 Date (0) | 2023.11.16 |
자바 날짜와 시간 (0) | 2023.11.16 |
자바 java.math.BigDecimal클래스 (0) | 2023.11.16 |
자바 java.math.BigInteger클래스 (0) | 2023.11.16 |