Calendar Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Класс Calendar является абстрактным классом, который предоставляет методы для преобразования между определенным моментом во времени и набором таких#fields calendar fields, как YEAR, , MONTHDAY_OF_MONTHHOURи т. д., а также для управления полями календаря, например получение даты следующей недели.
[Android.Runtime.Register("java/util/Calendar", DoNotGenerateAcw=true)]
public abstract class Calendar : Java.Lang.Object, IDisposable, 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, , MONTHDAY_OF_MONTHHOURи т. д., а также для управления полями календаря, например получение даты следующей недели. Мгновенное время может быть представлено миллисекундами, которое является смещением от "Эпохи"><em>Эпохи</em>, 1 января 1970 г. 00:00:00.000 GMT (Григориан).
Класс также предоставляет дополнительные поля и методы для реализации конкретной системы календаря за пределами пакета. Эти поля и методы определяются как protected.
Как и другие классы с учетом языкового стандарта, Calendar предоставляет метод класса для getInstanceполучения общего полезного объекта этого типа.
Calendar
getInstance Метод возвращает объект, поля календаря которого инициализированы с текущей Calendar датой и временем: <blockquote>
Calendar rightNow = Calendar.getInstance();
</blockquote>
Объект Calendar может создавать все значения полей календаря, необходимые для реализации форматирования даты и времени для определенного языка и стиля календаря (например, японско-грегорианского, Japanese-Traditional).
Calendar определяет диапазон значений, возвращаемых определенными полями календаря, а также их значение. Например, первый месяц системы календаря имеет значение MONTH == JANUARY для всех календарей. Другие значения определяются конкретным подклассом, например ERA. Дополнительные сведения см. в документации по отдельным полям и подклассной документации.
<h2>Получение и настройка значений< полей календаря/h2>
Значения полей календаря можно задать, вызвав set методы. Любые значения полей, заданные в объекте Calendar , не будут интерпретированы до тех пор, пока не потребуется вычислить значение времени (миллисекунда из эпохи) или значения полей календаря.
getВызов , getTimeInMillisgetTimeaddи roll включает в себя такие вычисления.
<h3>Leniency</h3>
Calendarимеет два режима для интерпретации полей календаря, <em>lenient/em< и >em<non-lenient></em>. Если он Calendar находится в ленивом режиме, он принимает более широкий диапазон значений полей календаря, чем он создает. При повторной Calendar компиляции значений полей календаря для возврата по get()всем полям календаря нормализуются. Например, ленивая GregorianCalendar интерпретирует MONTH == JANUARY, DAY_OF_MONTH == 32 как 1 февраля.
Если объект Calendar находится в режиме, отличном от ленивого режима, он создает исключение, если в полях календаря имеется несоответствие. Например, GregorianCalendar всегда создается DAY_OF_MONTH значения от 1 до длины месяца. Неуправляемый GregorianCalendar создает исключение при вычислении значений времени или поля календаря, если задано любое значение поля вне диапазона.
<h3>"first_week">First Week</h3>
Calendar определяет языковую стандартную семидневную неделю, используя два параметра: первый день недели и минимальные дни в первой неделе (от 1 до 7). Эти числа взяты из данных ресурса языкового стандарта или самого языкового стандарта при Calendar построении. Если указанный языковой стандарт содержит расширения Юникода "fw", первый день недели будет получен в соответствии с этими расширениями. Они также могут быть явно указаны с помощью методов для задания их значений.
При настройке или получении WEEK_OF_MONTHWEEK_OF_YEAR полей Calendar необходимо определить первую неделю месяца или года в качестве эталонной точки. Первая неделя месяца или года определяется как самый ранний семидневный период, начиная getFirstDayOfWeek() с и содержащий по крайней мере getMinimalDaysInFirstWeek() дни этого месяца или года. Недели нумерованы ..., -1, 0 до первой недели; недели нумерованы 2, 3,... следуйте ему. Обратите внимание, что нормализованное нумерирование, возвращаемое с помощью get() , может отличаться. Например, определенный Calendar подкласс может назначить неделю до недели 1 года в качестве <i>n</i> недели предыдущего года.
<Разрешение> полей календаря h3</h3>
При вычислении даты и времени из полей календаря может быть недостаточно информации для вычисления (например, только год и месяц без дня месяца), или может быть несогласованная информация (например, вторник, 15 июля 1996 г. (Григориан) - 15 июля 1996 г. фактически понедельник.
Calendar разрешает значения полей календаря, чтобы определить дату и время следующим образом.
"Разрешение",> если в значениях полей календаря есть конфликт, <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
</blockquote>
"time_resolution">Время дня полей: <blockquote>
HOUR_OF_DAY
AM_PM + HOUR
</blockquote>
Если есть поля календаря, значения которых не были заданы в выбранном сочетании полей, Calendar использует значения по умолчанию. Значение по умолчанию каждого поля может отличаться по конкретным системам календаря. Например, в GregorianCalendarполе по умолчанию используется то же самое, что и в начале эпохи: тYEAR = 1970. е. , , MONTH = JANUARYDAY_OF_MONTH = 1и т. д.
<strong>Note:</strong> Есть некоторые возможные неоднозначности в интерпретации определенных сингулярных времен, которые разрешаются следующими способами: <ol><li> 23:59 является последней минутой дня и 00:00 является первой минутой следующего дня. Таким образом, 23:59 31 декабря 1999 < 00:00 1 января 2000 < 00:01 1 января 2000 г.
Строки формата даты или времени не являются частью определения календаря, так как они должны быть изменяемыми или переопределяемыми пользователем во время выполнения. Используется DateFormat для форматирования дат.
<H3>Field Manipulation</h3>
Поля календаря можно изменить с помощью трех методов: set(), add()и roll().
<Поле >set(f, value) календаря сильных<>f и сильныхvalue изменений в . Кроме того, он задает внутреннюю переменную-член, чтобы указать, что поле f календаря было изменено. Хотя поле f календаря изменяется немедленно, значение времени календаря в миллисекундах не выполняется повторно, пока не будет выполнен следующий вызов get(), getTime()или getTimeInMillis()add()roll() будет выполнен. Таким образом, несколько вызовов не запускают set() несколько ненужных вычислений. В результате изменения поля календаря с помощью set()других полей календаря могут также изменяться в зависимости от поля календаря, значения поля календаря и системы календаря. Кроме того, get(f) не обязательно возвращается valueset вызовом метода после повторной компиляции полей календаря. Особенности определяются конкретным классом календаря.
<Em Example>/em<>: Рассмотрим первоначально заданный GregorianCalendar параметр 31 августа 1999 года. Вызов set(Calendar.MONTH, Calendar.SEPTEMBER) задает дату 31 сентября 1999 года. Это временное внутреннее представление, которое разрешается до 1 октября 1999 года, если getTime() затем вызывается. Тем не менее, вызов перед вызовом set(Calendar.DAY_OF_MONTH, 30)getTime() задает дату 30 сентября 1999 года, так как после себя не происходит set() повторная компиляция.
<в поле добавляется > значениеadd(f, delta)<> strongdelta/strong.f Это эквивалентно вызову set(f, get(f) + delta) с двумя корректировками:
<blockquote>
<strong>Add rule 1</strong>. Значение поля после вызова минус значение поля ff перед вызовом delta, модулировало любое переполнение, которое произошло в поле f. Переполнение возникает, когда значение поля превышает его диапазон и, в результате, следующее большее поле увеличивается или уменьшается, а значение поля корректируется обратно в диапазон.
<strong>Add rule 2</strong>. Если меньшее поле, как ожидается, будет инвариантным, но оно не может быть равно его предыдущему значению из-за изменений в минимальном или максимальном значении после изменения поля f или других ограничений, таких как изменения смещения часового пояса, его значение корректируется как можно ближе к ожидаемому значению. Меньшее поле представляет меньшее единицу времени.
HOUR — меньшее поле, чем DAY_OF_MONTH. Корректировка не выполняется в небольших полях, которые, как ожидается, не будут инвариантными. Система календаря определяет, какие поля должны быть инвариантными.
</blockquote>
Кроме того, set() в отличие от add()принудительной повторной компиляции миллисекунд календаря и всех полей.
<Em Example>/em<>: Рассмотрим первоначально заданный GregorianCalendar параметр 31 августа 1999 года. Вызов задает календарь add(Calendar.MONTH, 13) 30 сентября 2000 года.
<Strong>Add rule 1/strong< задает > поле на сентябрь, так как добавление 13MONTH месяцев к августу дает сентябрь следующего года. Так как DAY_OF_MONTH не может быть 31 в сентябре в режиме GregorianCalendarстрогого<> добавления правила 2</strong>, то самое ближайшее возможное значение имеет DAY_OF_MONTH значение 30. Хотя это меньшее поле, DAY_OF_WEEK не корректируется правилом 2, так как ожидается, что он изменится, когда месяц изменяется GregorianCalendar.
<Strong>roll(f, delta)</strong> добавляет delta в поле f без изменения больших полей. Это эквивалентно вызову add(f, delta) со следующей корректировкой:
<blockquote>
<правило> strong<Roll/strong>. Более крупные поля не изменяются после вызова. Большее поле представляет большую единицу времени.
DAY_OF_MONTH — это большее поле, чем HOUR.
</blockquote>
<Em Example>/em<>: Seejava.util.GregorianCalendar#roll(int, int).
<строгой>модели< использования или сильной>. Чтобы мотивировать поведение иadd(), рассмотрите компонент пользовательского roll() интерфейса с кнопками увеличения и уменьшения для месяца, дня и года, а также базовойGregorianCalendar. Если интерфейс считывает 31 января 1999 г. и пользователь нажимает кнопку увеличения месяца, что должно быть прочитано? Если базовая реализация используется set(), она может прочитать 3 марта 1999 года. Лучший результат будет 28 февраля 1999 года. Кроме того, если пользователь снова нажимает кнопку увеличения месяца, он должен прочитать 31 марта 1999 года, а не 28 марта 1999 года. Сохраняя исходную дату и используя add()roll()либо или в зависимости от того, должны ли быть затронуты большие поля, пользовательский интерфейс может вести себя так, как большинство пользователей будет интуитивно ожидать.
Добавлено в версии 1.1.
Java документации по java.util.Calendar.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя | Описание |
|---|---|
| Calendar() |
Создает календарь с часовой поясом по умолчанию и языковым стандартом по умолчанию |
| Calendar(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
| Calendar(TimeZone, Locale) |
Создает календарь с указанным часовыми поясами и языковым стандартом. |
Поля
| Имя | Описание |
|---|---|
| AllStyles |
Устаревшие.
Описатель стиля для |
| 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 |
Устаревшие.
Номер поля для |
Свойства
| Имя | Описание |
|---|---|
| AreFieldsSet |
Значение True, если |
| AvailableCalendarTypes |
Возвращает неизменяемый объект |
| CalendarType |
Возвращает тип календаря этого |
| Class |
Возвращает класс среды выполнения этого |
| Fields |
Значения полей календаря для текущего заданного времени для этого календаря. |
| FirstDayOfWeek |
Возвращает первый день недели; e. |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| Instance |
Возвращает календарь с помощью часового пояса по умолчанию и языкового стандарта. |
| IsTimeSet |
Значение True, если значение |
| IsWeekDateSupported |
Возвращает значение, поддерживает ли это |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Класс |
| JniPeerMembers |
Класс |
| Lenient |
Указывает, является ли интерпретация даты и времени лентой. |
| MinimalDaysInFirstWeek |
Получает минимальные дни, необходимые в первой неделе года; e. |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| Time |
|
| TimeInMillis |
Возвращает значение времени этого календаря в миллисекундах. |
| TimeZone |
Возвращает часовой пояс. -или- задает часовой пояс с заданным значением часового пояса. |
| WeeksInWeekYear |
Возвращает количество недель в недельном году, представленное этим |
| WeekYear |
Возвращает год недели, представленный этим |
Методы
| Имя | Описание |
|---|---|
| Add(CalendarField, Int32) |
Добавляет или вычитает указанное время в заданное поле календаря на основе правил календаря. |
| After(Object) |
Возвращает значение |
| Before(Object) |
|
| Clear() |
Задает все значения полей календаря и значение времени (миллисекундное смещение от "#Epoch">Эпоха) этого |
| Clear(CalendarField) |
Задает заданное значение поля календаря и значение времени (миллисекундное смещение от "#Epoch">Эпоха) этого |
| Clone() |
Создает и возвращает копию этого объекта. |
| CompareTo(Calendar) |
Сравнивает значения времени (миллисекунда смещения из "#Epoch">Эпоха"), представленного двумя |
| Complete() |
Заполняет все поля без набора в полях календаря. |
| ComputeFields() |
Преобразует текущее значение |
| ComputeTime() |
Преобразует текущие значения полей календаря в |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Класс |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Класс |
| Equals(Object) |
Класс |
| 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, Locale) |
Возвращает календарь с указанным часовыми поясами и языковым стандартом. |
| GetInstance(TimeZone) |
Возвращает календарь с помощью указанного часового пояса и языкового стандарта по умолчанию. |
| 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, Int32, Int32, Int32) |
Задает значения полей |
| Set(Int32, Int32, Int32, Int32, Int32) |
Задает значения для полей календаря , |
| Set(Int32, Int32, Int32) |
Задает значения для полей |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Класс |
| SetWeekDate(Int32, Int32, Int32) |
Задает дату этого |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToInstant() |
Класс |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IComparable.CompareTo(Object) |
Класс |
| IJavaPeerable.Disposed() |
Класс |
| IJavaPeerable.Finalized() |
Класс |
| IJavaPeerable.JniObjectReferenceControlBlock |
Класс |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Класс |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Класс |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Класс |
| IJavaPeerable.UnregisterFromRuntime() |
Класс |
Методы расширения
| Имя | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Класс |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |