Calendar — 날짜-시간 변환 추상 클래스
Calendar — 날짜-시간 변환 추상 클래스
특정 시간 순간(instant)과 YEAR, MONTH, DAY_OF_MONTH, HOUR 같은 달력 필드 집합 사이를 변환하는 메서드를 제공하는 추상 클래스예요.
본문
시그니처
public abstract class Calendar extends Object
implements Serializable, Cloneable, Comparable<Calendar>
구현된 인터페이스: Serializable, Cloneable, Comparable<Calendar>.
설명
Calendar 클래스는 특정 시간 순간과 달력 필드 집합(예: YEAR, MONTH, DAY_OF_MONTH, HOUR) 사이를 변환하고, 다음 주의 날짜 얻기 같은 작업으로 달력 필드를 조작하는 메서드를 제공하는 추상 클래스예요. 시간 순간은 에포크(1970년 1월 1일 00:00:00.000 GMT, 그레고리)로부터의 오프셋인 밀리초 값으로 표현할 수 있어요.
다른 로케일 민감 클래스처럼 Calendar는 일반적으로 유용한 이 유형의 객체를 얻기 위한 클래스 메서드 getInstance를 제공해요. Calendar의 getInstance 메서드는 달력 필드가 현재 날짜·시간으로 초기화된 Calendar 객체를 반환해요:
Calendar rightNow = Calendar.getInstance();
Calendar 객체는 특정 언어와 달력 스타일(예: 일본-그레고리, 일본-전통)에 대한 날짜-시간 포맷팅을 구현하는 데 필요한 모든 달력 필드 값을 만들어낼 수 있어요. Calendar는 특정 달력 필드가 반환하는 값의 범위와 그 의미를 정의해요. 예를 들어 모든 달력에서 달력 체계의 첫 번째 달은 MONTH == JANUARY 값을 가져요. ERA 같은 다른 값은 구체적인 하위 클래스가 정의해요.
필드 값 가져오기와 설정
달력 필드 값은 set 메서드를 호출해 설정할 수 있어요. 설정된 필드 값은 시간 값(에포크부터의 밀리초)이나 달력 필드 값을 계산할 필요가 있을 때까지 해석되지 않아요. get, getTimeInMillis, getTime, add, roll 호출은 그런 계산을 포함해요.
달력은 관대함(Leniency) 과 엄격함(Strictness) 두 가지 모드를 가져요. Lenient(관대한) 모드에서는 잘못된 필드 값이 다음 유효 값으로 자동으로 조정되고, Strict(엄격한) 모드에서는 잘못된 필드 값이 예외를 발생시켜요.
주요 메서드
getInstance()— 기본 로케일과 시간대를 사용해 달력을 얻어요.get(int field)— 지정한 달력 필드의 값을 반환해요.set(int field, int value)— 지정한 달력 필드를 지정한 값으로 설정해요.add(int field, int amount)— 지정한 달력 필드에 지정한 양(부호 있는)의 시간을 더하거나 빼요.roll(int field, int amount)— 더 큰 필드를 변경하지 않고 지정한 시간 양을 지정한 달력 필드에 더하거나 빼요.getTime()— 이Calendar의 시간 값을 나타내는Date객체를 반환해요.setTime(Date date)— 지정한Date로 이 Calendar의 시간을 설정해요.getTimeInMillis()— 이Calendar의 시간 값을 밀리초로 반환해요.getActualMaximum(int field)— 지정한 필드가 이 달력의 현재 시간 값에 대해 가질 수 있는 최대값을 반환해요.compareTo(Calendar anotherCalendar)— 두Calendar객체의 시간 값을 비교해요.