JAVA/포스팅

자바 Calendar

짜집퍼박사(짜박) 2023. 11. 16. 01:28

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