Calendar 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
클래스는 Calendar
특정 인스턴트 시간 및 #fields calendar fields
집합(예: YEAR
, MONTH
DAY_OF_MONTH
HOUR
등)을 변환하고 다음 주 날짜 가져오기와 같은 일정 필드를 조작하는 메서드를 제공하는 추상 클래스입니다.
[Android.Runtime.Register("java/util/Calendar", DoNotGenerateAcw=true)]
public abstract class Calendar : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Lang.IComparable
[<Android.Runtime.Register("java/util/Calendar", DoNotGenerateAcw=true)>]
type Calendar = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IComparable
- 상속
- 파생
- 특성
- 구현
설명
클래스는 Calendar
특정 시간 #fields calendar fields
및 집합(예: YEAR
, , MONTH
, DAY_OF_MONTH
HOUR
등)을 변환하고 다음 주 날짜 가져오기와 같은 달력 필드를 조작하는 메서드를 제공하는 추상 클래스입니다. 인스턴트 인 타임은 1970년 1월 1일 00:00:00.000 GMT(양력)의 오프셋인 "Epoch"><em>Epoch</em>의 오프셋인 밀리초 값으로 나타낼 수 있습니다.
또한 클래스는 패키지 외부에서 구체적인 달력 시스템을 구현하기 위한 추가 필드와 메서드를 제공합니다. 이러한 필드와 메서드는 로 정의 protected
됩니다.
다른 로캘에 민감한 클래스와 Calendar
마찬가지로 는 이 형식의 일반적으로 유용한 개체를 가져오기 위한 클래스 메서드 getInstance
를 제공합니다. Calendar
's getInstance
메서드는 현재 날짜 및 시간으로 <달력 필드가 초기화된 개체인 blockquote를 반환 Calendar
합니다.>
Calendar rightNow = Calendar.getInstance();
</인용구>
개체는 Calendar
특정 언어 및 달력 스타일(예: 일본-그레고리오, 일본어-번체)에 대한 날짜-시간 서식을 구현하는 데 필요한 모든 달력 필드 값을 생성할 수 있습니다. Calendar
는 특정 달력 필드에서 반환되는 값 범위와 해당 의미를 정의합니다. 예를 들어 달력 시스템의 첫 번째 달에는 모든 일정에 대한 값 MONTH == JANUARY
이 있습니다. 다른 값은 와 같은 ERA
구체적인 하위 클래스에 의해 정의됩니다. 자세한 내용은 개별 필드 설명서 및 하위 클래스 설명서를 참조하세요.
<h2>일정 필드 값< 가져오기 및 설정/h2>
달력 필드 값은 메서드를 호출 set
하여 설정할 수 있습니다. 에 Calendar
설정된 필드 값은 시간 값(Epoch에서 밀리초) 또는 달력 필드 값을 계산해야 할 때까지 해석되지 않습니다. , , getTimeInMillis
및 getTime
add
roll
를 get
호출하면 이러한 계산이 포함됩니다.
<h3>Leniency</h3>
Calendar
에는 달력 필드를 <해석하기 위한 두 가지 모드가 있습니다( em>lenient</em> 및 <em>non-lenient</em>). 가 Calendar
관대 모드인 경우 생성되는 것보다 더 넓은 범위의 달력 필드 값을 허용합니다. 에서 Calendar
반환 get()
할 달력 필드 값을 다시 계산하면 모든 달력 필드가 정규화됩니다. 예를 들어 관대 GregorianCalendar
한 는 을 2월 1일로 해석합니다MONTH == JANUARY
DAY_OF_MONTH == 32
.
가 Calendar
관대하지 않은 모드인 경우 달력 필드에 불일치가 있는 경우 예외가 throw됩니다. 예를 들어 는 GregorianCalendar
항상 1과 월 길이 사이의 값을 생성 DAY_OF_MONTH
합니다. GregorianCalendar
범위 외 필드 값이 설정된 경우 관대하지 않은 는 시간 또는 달력 필드 값을 계산할 때 예외를 throw합니다.
<h3>"first_week">첫 주</h3>
Calendar
는 두 개의 매개 변수를 사용하여 로캘별 7일 주를 정의합니다. 즉, 요일의 첫 번째 날과 첫 주의 최소 일(1~7일)입니다. 이 숫자는 가 생성될 때 Calendar
로캘 리소스 데이터 또는 로캘 자체에서 가져옵니다. 지정된 로캘에 "fw" 유니코드 확장이 포함된 경우 해당 확장에 따라 요일의 첫 번째 날을 가져옵니다. 값을 설정하는 메서드를 통해 명시적으로 지정할 수도 있습니다.
또는 WEEK_OF_YEAR
필드를 Calendar
설정하거나 가져오는 WEEK_OF_MONTH
경우 은 월 또는 연도의 첫 번째 주를 참조 지점으로 결정해야 합니다. 월 또는 연도의 첫 번째 주부터 시작하여 getFirstDayOfWeek()
해당 월 또는 연도의 최소 getMinimalDaysInFirstWeek()
일 수를 포함하는 가장 이른 7일 기간으로 정의됩니다. 번호가 매겨진 주 ..., -1, 0이 첫 주보다 앞섰습니다. 주 번호는 2, 3입니다,... 따라가세요. 에서 반환 get()
된 정규화된 번호 매기기 는 다를 수 있습니다. 예를 들어 특정 Calendar
하위 클래스는 연도의 1주 전 주를 이전 연도의 주 <i>n</i>
로 지정할 수 있습니다.
<h3>일정 필드 해상도</h3>
달력 필드에서 날짜 및 시간을 계산할 때 계산에 대한 정보가 부족하거나(예: 월이 없는 연도 및 월) 또는 일관되지 않은 정보가 있을 수 있습니다(예: 1996년 7월 15일 화요일(그레고리오)- 1996년 7월 15일은 실제로 월요일임). Calendar
는 다음과 같은 방식으로 날짜 및 시간을 결정하기 위해 달력 필드 값을 resolve.
"해결 방법">달력 필드 값 <에 충돌이 있는 경우 c>Calendar</c> 는 최근에 설정된 일정 필드에 우선 순위를 지정합니다. 다음은 달력 필드의 기본 조합입니다. 가장 최근에 설정된 단일 필드에 의해 결정된 가장 최근의 조합이 사용됩니다.
"date_resolution">날짜 필드의 경우: <blockquote>
YEAR + MONTH + DAY_OF_MONTH
YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
YEAR + DAY_OF_YEAR
YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
</인용구>
"time_resolution">하루 중 시간 필드: <blockquote>
HOUR_OF_DAY
AM_PM + HOUR
</인용구>
선택한 필드 조합 Calendar
에서 값이 설정되지 않은 달력 필드가 있는 경우 는 기본값을 사용합니다. 각 필드의 기본값은 구체적인 달력 시스템에 따라 달라질 수 있습니다. 예를 들어 에서 GregorianCalendar
필드의 기본값은 Epoch 시작 부분(예YEAR = 1970
: , , MONTH = JANUARY
DAY_OF_MONTH = 1
, 등)과 동일합니다.
<strong>Note:</strong> 특정 단수 시간의 해석에는 특정한 모호성이 있습니다 <. ol><li> 23:59는 하루의 마지막 분이고 00:00은 다음 날의 첫 번째 분입니다. 따라서 1999년 12월 31일 23:59 < 2000년 1월 1일 00:00 < 2000년 1월 1일 00:01.
<li> 역사적으로 정확하지는 않지만 자정은 "am"에 속하며 정오는 "pm"에 속하므로 같은 날 오전 12:00(자정) <, 12:01 am 및 오후 12:00(정오) < 12:01 pm </ol>
날짜 또는 시간 형식 문자열은 사용자가 런타임에 수정하거나 재정의할 수 있어야 하므로 달력 정의의 일부가 아닙니다. 날짜를 서식 지정하는 데 사용합니다 DateFormat
.
<h3>필드 조작</h3>
달력 필드는 , add()
및 roll()
의 세 가지 메서드set()
를 사용하여 변경할 수 있습니다.
<strong>set(f, value)
</strong> 는 달력 필드를 f
로 변경합니다 value
. 또한 달력 필드 f
가 변경되었음을 나타내도록 내부 멤버 변수를 설정합니다. 일정 필드는 f
즉시 변경되지만 , , getTime()
getTimeInMillis()
, add()
또는 roll()
에 대한 다음 호출get()
이 이루어질 때까지 달력의 시간 값(밀리초)은 다시 계산되지 않습니다. 따라서 에 대한 여러 호출은 set()
불필요한 여러 계산을 트리거하지 않습니다. 을 사용하여 set()
달력 필드를 변경하면 달력 필드, 달력 필드 값 및 일정 시스템에 따라 다른 일정 필드도 변경됩니다. 또한 는 get(f)
달력 필드가 다시 계산된 후 메서드 호출에 set
의해 설정된 을 반드시 반환 value
하지는 않습니다. 세부 정보는 구체적인 달력 클래스에 의해 결정됩니다.
<em>Example</em>: 원래 1999년 8월 31일로 설정된 를 고려 GregorianCalendar
합니다. 통화 set(Calendar.MONTH, Calendar.SEPTEMBER)
는 날짜를 1999년 9월 31일로 설정합니다. 가 호출되면 getTime()
1999년 10월 1일로 확인되는 임시 내부 표현입니다. 그러나 호출 전에 을 set(Calendar.DAY_OF_MONTH, 30)
호출하여 getTime()
날짜가 1999년 9월 30일로 설정됩니다. 그 이후에 set()
는 재계산이 발생하지 않으므로 입니다.
<strong>add(f, delta)
</strong>는 필드에 f
를 추가합니다delta
. 이는 다음 두 가지 조정을 사용하여 를 호출하는 set(f, get(f) + delta)
것과 같습니다.
<인용구>
<strong>규칙 1</strong을 추가합니다>. 호출 후 필드 f
값에서 호출 전 필드 f
값을 뺀 값은 입니다 delta
. 필드 f
에서 발생한 오버플로는 모듈로입니다. 오버플로는 필드 값이 범위를 초과하고 그 다음 큰 필드가 증가하거나 감소하고 필드 값이 해당 범위로 다시 조정될 때 발생합니다.
<strong>규칙 2</strong을 추가합니다>. 더 작은 필드가 고정될 것으로 예상되지만 필드가 변경된 후 f
최소값 또는 최대값이 변경되거나 표준 시간대 오프셋 변경과 같은 기타 제약 조건으로 인해 이전 값과 같을 수 없는 경우 해당 값은 예상 값에 최대한 가깝게 조정됩니다. 더 작은 필드는 더 작은 시간 단위를 나타냅니다. HOUR
은 보다 DAY_OF_MONTH
작은 필드입니다. 고정되지 않을 것으로 예상되는 더 작은 필드에는 조정되지 않습니다. 일정 시스템은 고정될 것으로 예상되는 필드를 결정합니다.
</인용구>
또한 와 add()
달리 set()
달력의 밀리초 및 모든 필드를 즉시 다시 계산합니다.
<em>Example</em>: 원래 1999년 8월 31일로 설정된 를 고려 GregorianCalendar
합니다. 통화 add(Calendar.MONTH, 13)
는 일정을 2000년 9월 30일로 설정합니다. <strong>Add 규칙 1</strong> 은 필드를 9월로 설정합니다. 8월에 13개월을 추가하면 다음 해 9월이 제공되므로 필드가 9월로 설정 MONTH
됩니다. DAY_OF_MONTH
는 9월에 31일 수 없으므로 GregorianCalendar
강력한>< 추가 규칙 2</strong>은 를 가능한 가장 가까운 값인 30으로 설정합니다DAY_OF_MONTH
. 더 작은 필드 DAY_OF_WEEK
이지만 에서 월이 변경될 때 변경될 것으로 예상되므로 규칙 2에 GregorianCalendar
의해 조정되지 않습니다.
<strong>roll(f, delta)
</strong>는 더 큰 필드를 변경하지 않고 필드에 f
추가합니다delta
. 이는 다음 조정을 사용하여 를 호출 add(f, delta)
하는 것과 같습니다.
<인용구>
<strong>Roll rule</strong>. 호출 후 큰 필드는 변경되지 않습니다. 더 큰 필드는 더 큰 시간 단위를 나타냅니다. DAY_OF_MONTH
보다 큰 필드 HOUR
입니다.
</인용구>
<em>Example</em>: 를 참조하세요 java.util.GregorianCalendar#roll(int, int)
.
<strong>Usage model</strong>. 및 roll()
의 add()
동작에 동기를 부여하려면 월, 일, 연도 및 기본 에 대한 증가 및 감소 단추가 있는 사용자 인터페이스 구성 요소를 고려합니다GregorianCalendar
. 인터페이스가 1999년 1월 31일을 읽고 사용자가 월 증가 단추를 누르면 무엇을 읽어야 하나요? 기본 구현에서 를 사용하는 set()
경우 1999년 3월 3일을 읽을 수 있습니다. 더 나은 결과는 1999년 2월 28일입니다. 또한 사용자가 월 증가 단추를 다시 누르면 1999년 3월 28일이 아닌 1999년 3월 31일을 읽어야 합니다. 원래 날짜를 저장하고 또는 를 add()
roll()
사용하여 더 큰 필드의 영향을 받는지 여부에 따라 대부분의 사용자가 직관적으로 예상하는 대로 사용자 인터페이스가 동작할 수 있습니다.
1.1에 추가되었습니다.
에 대한 Java 설명서입니다 java.util.Calendar
.
이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
Calendar() |
기본 표준 시간대와 기본 |
Calendar(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
Calendar(TimeZone, Locale) |
지정된 표준 시간대 및 로캘을 사용하여 달력을 생성합니다. |
필드
AllStyles |
사용되지 않음.
"1월" 및 "Jan"과 같은 모든 스타일의 이름을 나타내는 스타일 지정자 |
Am |
|
AmPm |
사용되지 않음.
에 대한 |
April |
|
August |
|
Date |
사용되지 않음.
월의 날짜를 나타내는 및 |
DayOfMonth |
사용되지 않음.
월의 날짜를 나타내는 및 |
DayOfWeek |
사용되지 않음.
요일을 |
DayOfWeekInMonth |
사용되지 않음.
현재 월 내의 요일의 서수 번호 및 |
DayOfYear |
사용되지 않음.
현재 연도 내의 일 번호를 나타내는 및 에 대한 |
December |
|
DstOffset |
사용되지 않음.
일광 절약 오프셋(밀리초)을 나타내는 및 에 대한 |
Era |
사용되지 않음.
연대를 나타내는 및 |
February |
|
FieldCount |
및 |
Friday |
금요일을 |
Hour |
사용되지 않음.
오전 또는 오후의 시간 및 |
HourOfDay |
사용되지 않음.
날짜의 시간을 나타내는 및 |
January |
|
July |
|
June |
|
Long |
사용되지 않음.
및 |
LongFormat |
형식에 |
LongStandalone |
달력 머리글로 월 이름과 같이 독립적으로 사용되는 긴 이름을 나타내는 및 에 대한 |
March |
|
May |
|
Millisecond |
사용되지 않음.
초 내의 밀리초를 나타내는 및 |
Minute |
사용되지 않음.
시간 내의 분을 나타내는 및 |
Monday |
월요일을 |
Month |
사용되지 않음.
월을 나타내는 및 |
NarrowFormat |
형식에 |
NarrowStandalone |
좁은 이름을 독립적으로 나타내는 및 |
November |
|
October |
|
Pm |
|
Saturday |
토요일을 |
Second |
사용되지 않음.
의 필드 번호 |
September |
|
Short |
사용되지 않음.
및 |
ShortFormat |
형식에 |
ShortStandalone |
달력 머리글로 한 달 약어와 |
Sunday |
일요일을 |
Thursday |
목요일을 |
Tuesday |
화요일을 |
Undecimber |
연도의 |
Wednesday |
수요일을 |
WeekOfMonth |
사용되지 않음.
현재 월 내의 주 번호를 나타내는 및 에 대한 |
WeekOfYear |
사용되지 않음.
현재 연도 내의 주 번호를 나타내는 및 에 대한 |
Year |
사용되지 않음.
연도를 나타내는 및 |
ZoneOffset |
사용되지 않음.
GMT의 원시 오프셋을 나타내는 필드 번호 |
속성
AreFieldsSet |
True이면 |
AvailableCalendarTypes |
런타임 환경에서 에서 지원하는 |
CalendarType |
이 |
Class |
이 |
Fields |
이 달력의 현재 설정된 시간에 대한 달력 필드 값입니다. |
FirstDayOfWeek |
요일의 첫 날을 가져옵니다. 전자. |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
Instance |
기본 표준 시간대 및 로캘을 사용하여 일정을 가져옵니다. |
IsTimeSet |
True이면 값 |
IsWeekDateSupported |
주 |
JniIdentityHashCode |
클래스는 |
JniPeerMembers |
클래스는 |
Lenient |
날짜/시간 해석이 관대해야 하는지 여부를 알려줍니다. |
MinimalDaysInFirstWeek |
연도의 첫 주에 필요한 최소 일 수를 가져옵니다. 전자. |
PeerReference |
클래스는 |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
Time |
|
TimeInMillis |
이 일정의 시간 값을 밀리초 단위로 반환합니다. |
TimeZone |
표준 시간대를 가져옵니다. -또는- 지정된 표준 시간대 값을 사용하여 표준 시간대를 설정합니다. |
WeeksInWeekYear |
이 |
WeekYear |
이 |
메서드
Add(CalendarField, Int32) |
일정의 규칙에 따라 지정된 일정 필드에 지정된 시간을 추가하거나 뺍니다. |
After(Object) |
지정된 |
Before(Object) |
지정된 |
Clear() |
정의되지 않은 이 의 모든 달력 필드 값과 시간 값("#Epoch">Epoch의 오프셋 밀리초)을 |
Clear(CalendarField) |
지정된 달력 필드 값과 이 정의되지 않은 의 시간 값("#Epoch">Epoch의 오프셋 밀리초)을 |
Clone() |
이 개체의 복사본을 만들고 반환합니다. |
CompareTo(Calendar) |
두 |
Complete() |
일정 필드의 설정되지 않은 필드를 채웁니다. |
ComputeFields() |
현재 밀리초 시간 값을 |
ComputeTime() |
의 현재 달력 필드 값을 |
Dispose() |
클래스는 |
Dispose(Boolean) |
클래스는 |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
Get(CalendarField) |
지정된 달력 필드의 값을 반환합니다. |
GetActualMaximum(CalendarField) |
이 |
GetActualMinimum(CalendarField) |
이 |
GetAvailableLocales() |
이 클래스의 메서드가 지역화된 인스턴스를 반환할 수 있는 |
GetDisplayName(Int32, Int32, Locale) |
지정된 |
GetDisplayNames(Int32, Int32, Locale) |
|
GetGreatestMinimum(CalendarField) |
이 |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
GetInstance(Locale) |
기본 표준 시간대 및 지정된 로캘을 사용하여 달력을 가져옵니다. |
GetInstance(TimeZone) |
지정된 표준 시간대 및 기본 로캘을 사용하여 달력을 가져옵니다. |
GetInstance(TimeZone, Locale) |
지정된 표준 시간대 및 로캘이 있는 달력을 가져옵니다. |
GetLeastMaximum(CalendarField) |
이 |
GetMaximum(CalendarField) |
이 |
GetMinimum(CalendarField) |
이 |
InternalGet(Int32) |
지정된 달력 필드의 값을 반환합니다. |
IsSet(CalendarField) |
메서드 호출에 의해 |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Roll(CalendarField, Boolean) |
더 큰 필드를 변경하지 않고 지정된 시간 필드에 단일 시간 단위를 추가하거나 뺍니다(위쪽/아래쪽). |
Roll(CalendarField, Int32) |
더 큰 필드를 변경하지 않고 지정된(부호 있는) 크기를 지정된 달력 필드에 추가합니다. |
Set(CalendarField, Int32) |
지정된 달력 필드를 지정된 값으로 설정합니다. |
Set(Int32, Int32, Int32) |
달력 필드 |
Set(Int32, Int32, Int32, Int32, Int32) |
달력 필드 |
Set(Int32, Int32, Int32, Int32, Int32, Int32) |
, , , |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
SetWeekDate(Int32, Int32, Int32) |
이 날짜를 지정된 날짜 |
ToArray<T>() |
클래스는 |
ToInstant() |
클래스는 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
클래스는 |
Wait() |
현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IComparable.CompareTo(Object) |
클래스는 |
IJavaPeerable.Disposed() |
클래스는 |
IJavaPeerable.DisposeUnlessReferenced() |
클래스는 |
IJavaPeerable.Finalized() |
클래스는 |
IJavaPeerable.JniManagedPeerState |
클래스는 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
클래스는 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
클래스는 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
클래스는 |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
클래스는 |
GetJniTypeName(IJavaPeerable) |
클래스는 |