Spec-Zone.ru › OpenJDK 17

Класс Calendar

java.lang.Object
java.util.Calendar
Все реализованные интерфейсы:
Serializable, Cloneable, Comparable<Calendar>
Прямые известные подклассы:
GregorianCalendar
public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
Класс Calendar — это абстрактный класс, предоставляющий методы для преобразования конкретного момента времени в набор calendar fields, таких как YEAR, MONTH, DAY_OF_MONTH, HOUR, и так далее, а также для управления календарными полями, например, для получения даты следующей недели. Момент времени можно представить в виде значения в миллисекундах, которое является смещением от эпохи, 1 января 1970 года 00:00:00.000 GMT (григорианский календарь).

Класс также предоставляет дополнительные поля и методы для реализации конкретной календарной системы вне пакета. Эти поля и методы определены как protected.

Как и другие классы, чувствительные к локали, Calendar предоставляет метод класса getInstance для получения полезного объекта этого типа. Метод getInstance класса Calendar возвращает объект Calendar, чьи календарные поля инициализированы текущей датой и временем:

     Calendar rightNow = Calendar.getInstance();
 

Объект Calendar может генерировать все значения календарных полей, необходимые для реализации форматирования даты и времени для конкретного языка и стиля календаря (например, японский-григорианский, японский-традиционный). Calendar определяет диапазон значений, возвращаемых определёнными календарными полями, а также их значение. Например, первый месяц календарной системы имеет значение MONTH == JANUARY для всех календарей. Другие значения определены конкретным подклассом, например, ERA. Подробные сведения см. в документации по отдельным полям и документации по подклассам.

Получение и установка значений календарных полей

Значения календарных полей можно установить, вызвав методы set. Любые значения полей, установленные в Calendar, не будут интерпретированы до тех пор, пока он не потребуется для расчета своего значения времени (миллисекунды с эпохи) или значений календарных полей. Вызов методов get, getTimeInMillis, getTime, add и roll подразумевает такой расчёт.

Свободное толкование

Calendar имеет два режима интерпретации календарных полей: свободное толкование и строгое толкование. Когда Calendar находится в режиме свободного толкования, он принимает более широкий диапазон значений календарных полей, чем генерирует. Когда Calendar пересчитывает значения календарных полей для возвращения методом get(), все календарные поля нормализуются. Например, GregorianCalendar в режиме свободного толкования интерпретирует MONTH == JANUARY, DAY_OF_MONTH == 32 как 1 февраля.

Когда Calendar находится в режиме строгого толкования, он генерирует исключение, если существует какое-либо противоречие в его календарных полях. Например, GregorianCalendar всегда генерирует значения DAY_OF_MONTH между 1 и длиной месяца. GregorianCalendar в режиме строгого толкования генерирует исключение при расчете времени или значений календарных полей, если установлено какое-либо значение поля, выходящее за пределы диапазона.

Первая неделя

Calendar определяет специфичный для локали семидневную неделю, используя два параметра: первый день недели и минимальное количество дней в первой неделе (от 1 до 7). Эти числа берутся из данных ресурсов локали или из самой локали при создании Calendar. Если заданная локаль содержит расширения Unicode "fw" и/или "rg" расширения локали, первый день недели будет получен в соответствии с этими расширениями. Если указаны оба расширения "fw" и "rg", значение из расширения "fw" имеет приоритет над неявным значением из расширения "rg". Их также можно указать явно с помощью методов для установки их значений.

При установке или получении полей WEEK_OF_MONTH или WEEK_OF_YEAR Calendar должен определить первую неделю месяца или года в качестве точки отсчета. Первая неделя месяца или года определяется как самый ранний период в семь дней, начинающийся в getFirstDayOfWeek() и содержащий как минимум getMinimalDaysInFirstWeek() дней того месяца или года. Недели с номерами ..., -1, 0 предшествуют первой неделе; недели с номерами 2, 3,... следуют за ней. Обратите внимание, что нормализованные номера, возвращаемые get(), могут отличаться. Например, конкретный подкласс Calendar может обозначить неделю до первой недели года как неделю n предыдущего года.

Разрешение календарных полей

При вычислении даты и времени по календарным полям может быть недостаточно информации для вычисления (например, только год и месяц без дня месяца) или может быть противоречивая информация (например, вторник, 15 июля 1996 года (григорианский) — 15 июля 1996 года на самом деле понедельник). Calendar будет разрешать значения календарных полей для определения даты и времени следующим образом.

Если есть какие-либо конфликты в значениях календарных полей, Calendar отдаёт приоритет календарным полям, которые были установлены более поздно. Ниже приведены стандартные сочетания календарных полей. Будет использовано самое последнее сочетание, определённое по последнему установленному полю.

Для полей даты:

 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
 
Для полей времени суток:
 HOUR_OF_DAY
 AM_PM + HOUR
 

Если какие-либо календарные поля не были установлены в выбранном сочетании полей, Calendar использует их значения по умолчанию. Значение по умолчанию для каждого поля может варьироваться в зависимости от конкретной календарной системы. Например, в GregorianCalendar, значение по умолчанию поля такое же, как и в начале эпохи: т.е., YEAR = 1970, MONTH = JANUARY, DAY_OF_MONTH = 1, и т. д.

Примечание: Существуют определенные возможные неоднозначности в интерпретации некоторых конкретных моментов времени, которые разрешаются следующим образом:

  1. 23:59 — последняя минута дня, а 00:00 — первая минута следующего дня. Таким образом, 23:59 31 декабря 1999 г. < 00:00 1 января 2000 г. < 00:01 1 января 2000 г.
  2. Хотя исторически неточно, полночь также относится к "am", а полдень — к "pm", так что в один и тот же день 12:00 am (полночь) < 12:01 am, и 12:00 pm (полдень) < 12:01 pm

Форматы строк дат или времени не являются частью определения календаря, так как они должны быть изменяемыми или переопределяемыми пользователем во время выполнения. Используйте DateFormat для форматирования дат.

Обработка полей

Календарные поля могут быть изменены с помощью трёх методов: set(), add(), и roll().

set(f, value) изменяет календарное поле f на value. Кроме того, он устанавливает внутреннюю переменную-член, указывающую на то, что календарное поле f было изменено. Хотя календарное поле f изменяется немедленно, значение времени календаря в миллисекундах не пересчитывается до следующего вызова get(), getTime(), getTimeInMillis(), add(), или roll(). Таким образом, многократные вызовы set() не вызывают многократных, нежелательных вычислений. В результате изменения календарного поля с помощью set(), другие календарные поля также могут измениться, в зависимости от календарного поля, значения календарного поля и календарной системы. Кроме того, get(f) не обязательно вернёт значение value, установленное вызовом метода set после пересчёта календарных полей. Конкретные детали определяются конкретным классом календаря.

Пример: Рассмотрим 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) добавляет delta к полю f. Это эквивалентно вызову set(f, get(f) + delta) с двумя корректировками:

Правило 1 добавления. Значение поля f после вызова минус значение поля f до вызова составляет delta, по модулю любого переполнения, произошедшего в поле f. Переполнение происходит, когда значение поля превышает его диапазон, и в результате следующее более крупное поле увеличивается или уменьшается, а значение поля корректируется обратно в его диапазон.

Правило 2 добавления. Если ожидается, что более мелкие поля будут неизменными, но это невозможно, так как из-за изменений минимального или максимального значения после изменения поля f или других ограничений, таких как изменение смещения часового пояса, тогда его значение корректируется как можно ближе к его ожидаемому значению. Более мелкое поле представляет более мелкую единицу времени. HOUR — более мелкое поле, чем DAY_OF_MONTH. Никакая корректировка не вносится для более мелких полей, которые не ожидаются неизменными. Календарная система определяет, какие поля ожидаются неизменными.

Кроме того, в отличие от set(), add() заставляет немедленно пересчитать миллисекунды календаря и все поля.

Пример: Рассмотрим GregorianCalendar первоначально установленный на 31 августа 1999 года. Вызов add(Calendar.MONTH, 13) устанавливает календарь на 30 сентября 2000 года. Правило 1 добавления устанавливает поле MONTH на сентябрь, поскольку добавление 13 месяцев к августу даёт сентябрь следующего года. Поскольку DAY_OF_MONTH не может быть 31 в сентябре в GregorianCalendar, правило 2 добавления устанавливает DAY_OF_MONTH на 30, что является самым близким возможным значением. Несмотря на то, что это более мелкое поле, DAY_OF_WEEK не корректируется правилом 2, так как ожидается, что оно изменится при смене месяца в GregorianCalendar.

roll(f, delta) добавляет delta к полю f без изменения более крупных полей. Это эквивалентно вызову add(f, delta) со следующей корректировкой:

Правило вращения. Более крупные поля остаются неизменными после вызова. Более крупное поле представляет более крупную единицу времени. DAY_OF_MONTH — более крупное поле, чем HOUR.

Пример: См. GregorianCalendar.roll(int, int).

Модель использования. Для мотивации поведения add() и roll(), рассмотрите компонент пользовательского интерфейса с кнопками увеличения и уменьшения для месяца, дня и года, и с базовым GregorianCalendar. Если интерфейс отображает 31 января 1999 года, и пользователь нажимает кнопку увеличения месяца, что должно отображаться? Если базовое реализация использует set(), она может отобразить 3 марта 1999 года. Лучшим результатом будет 28 февраля 1999 года. Кроме того, если пользователь снова нажмет кнопку увеличения месяца, должно отображаться 31 марта 1999 года, а не 28 марта 1999 года. Сохраняя исходную дату и используя add() или roll(), в зависимости от того, должны ли затрагиваться более крупные поля, пользовательский интерфейс может вести себя так, как интуитивно ожидают большинство пользователей.

С момента:
1.1
См. также:
  • System.currentTimeMillis()
  • Date
  • GregorianCalendar
  • TimeZone
  • DateFormat
  • Сериализованная форма

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  Calendar.Builder
Calendar.Builder используется для создания Calendar из различных параметров даты и времени.

Краткое описание полей

Modifier and Type Field Description
static final int ALL_STYLES
Спецификатор стиля для getDisplayNames, указывающий имена во всех стилях, такие как «Январь» и «Янв».
static final int AM
Значение поля AM_PM, указывающее период дня с полуночи до чуть перед полуднем.
static final int AM_PM
Номер поля для get и set , указывающий, находится ли HOUR до или после полудня.
static final int APRIL
Значение поля MONTH, указывающее четвёртый месяц года в григорианском и юлианском календарях.
protected boolean areFieldsSet
Истина, если fields[] синхронизированы со временем, установленным в настоящий момент.
static final int AUGUST
Значение поля MONTH, указывающее восьмой месяц года в григорианском и юлианском календарях.
static final int DATE
Номер поля для get и set , указывающий день месяца.
static final int DAY_OF_MONTH
Номер поля для get и set , указывающий день месяца.
static final int DAY_OF_WEEK
Номер поля для get и set , указывающий день недели.
static final int DAY_OF_WEEK_IN_MONTH
Номер поля для get и set , указывающий порядковый номер дня недели в текущем месяце.
static final int DAY_OF_YEAR
Номер поля для get и set , указывающий номер дня в текущем году.
static final int DECEMBER
Значение поля MONTH, указывающее двенадцатый месяц года в григорианском и юлианском календарях.
static final int DST_OFFSET
Номер поля для get и set , указывающий смещение летнего времени в миллисекундах.
static final int ERA
Номер поля для get и set , указывающий эру, например, до н. э. или н. э. в юлианском календаре.
static final int FEBRUARY
Значение поля MONTH, указывающее второй месяц года в григорианском и юлианском календарях.
static final int FIELD_COUNT
Количество различных полей, распознаваемых get и set.
protected int[] fields
Значения полей календаря для текущего времени в этом календаре.
static final int FRIDAY
Значение поля DAY_OF_WEEK, указывающее пятницу.
static final int HOUR
Номер поля для get и set , указывающий час утра или дня.
static final int HOUR_OF_DAY
Номер поля для get и set , указывающий час дня.
protected boolean[] isSet
Флаги, которые показывают, установлено ли указанное поле календаря для календаря.
protected boolean isTimeSet
Истина, если значение time является корректным.
static final int JANUARY
Значение поля MONTH, указывающее первый месяц года в григорианском и юлианском календарях.
static final int JULY
Значение поля MONTH, указывающее седьмой месяц года в григорианском и юлианском календарях.
static final int JUNE
Значение поля MONTH, указывающее шестой месяц года в григорианском и юлианском календарях.
static final int LONG
Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный LONG_FORMAT.
static final int LONG_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий длинное имя, используемое для форматирования.
static final int LONG_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий длинное имя, используемое независимо, например, название месяца в заголовках календаря.
static final int MARCH
Значение поля MONTH, указывающее третий месяц года в григорианском и юлианском календарях.
static final int MAY
Значение поля MONTH, указывающее пятый месяц года в григорианском и юлианском календарях.
static final int MILLISECOND
Номер поля для get и set , указывающий миллисекунды в секунде.
static final int MINUTE
Номер поля для get и set , указывающий минуты в часе.
static final int MONDAY
Значение поля DAY_OF_WEEK, указывающее понедельник.
static final int MONTH
Номер поля для get и set , указывающий месяц.
static final int NARROW_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий узкое имя, используемое для форматирования.
static final int NARROW_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий узкое имя, используемое независимо.
static final int NOVEMBER
Значение поля MONTH, указывающее одиннадцатый месяц года в григорианском и юлианском календарях.
static final int OCTOBER
Значение поля MONTH, указывающее десятый месяц года в григорианском и юлианском календарях.
static final int PM
Значение поля AM_PM, указывающее период дня с полудня до чуть перед полуночью.
static final int SATURDAY
Значение поля DAY_OF_WEEK, указывающее субботу.
static final int SECOND
Номер поля для get и set , указывающий секунды в минуте.
static final int SEPTEMBER
Значение поля MONTH, указывающее девятый месяц года в григорианском и юлианском календарях.
static final int SHORT
Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный SHORT_FORMAT.
static final int SHORT_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий короткое имя, используемое для форматирования.
END_OF_DOCUMENT_MARKER
static final int SHORT_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий короткое имя, используемое независимо, например, сокращение месяца в качестве заголовков календаря.
static final int SUNDAY
Значение поля DAY_OF_WEEK, обозначающее воскресенье.
static final int THURSDAY
Значение поля DAY_OF_WEEK, обозначающее четверг.
protected long time
Текущее время этого календаря, выраженное в миллисекундах после 00:00:00 1 января 1970 года по Гринвичу.
static final int TUESDAY
Значение поля DAY_OF_WEEK, обозначающее вторник.
static final int UNDECIMBER
Значение поля MONTH, обозначающее тринадцатый месяц года.
static final int WEDNESDAY
Значение поля DAY_OF_WEEK, обозначающее среду.
static final int WEEK_OF_MONTH
Номер поля для get и set , обозначающего номер недели в текущем месяце.
static final int WEEK_OF_YEAR
Номер поля для get и set , обозначающего номер недели в текущем году.
static final int YEAR
Номер поля для get и set , обозначающего год.
static final int ZONE_OFFSET
Номер поля для get и set , обозначающего исходное смещение от GMT в миллисекундах.

Краткое описание конструкторов

Calendar()
Calendar(TimeZone zone, Locale aLocale)
Модификатор Конструктор Описание
protected
Создает календарь с часовым поясом по умолчанию и локалью по умолчанию FORMAT.
protected
Создает календарь с указанным часовым поясом и локалью.

Краткое описание методов

Модификатор и тип Метод Описание
abstract void add(int field, int amount)
Добавляет или вычитает указанное количество времени к заданному полю календаря, исходя из правил календаря.
boolean after(Object when)
Возвращает, представляет ли этот Calendar время после времени, представленного указанным Object.
boolean before(Object when)
Возвращает, представляет ли этот Calendar время до времени, представленного указанным Object.
final void clear()
Устанавливает все значения полей календаря и значение времени (смещение в миллисекундах от эпохи) этого Calendar в неопределённое состояние.
final void clear(int field)
Устанавливает заданное значение поля календаря и значение времени (смещение в миллисекундах от эпохи) этого Calendar в неопределённое состояние.
Object clone()
Создаёт и возвращает копию этого объекта.
int compareTo(Calendar anotherCalendar)
Сравнивает значения времени (смещения в миллисекундах от эпохи), представленные двумя объектами Calendar.
protected void complete()
Заполняет любые не заданные поля в полях календаря.
protected abstract void computeFields()
Преобразует текущее значение времени в миллисекундах time в значения полей календаря в fields[].
protected abstract void computeTime()
Преобразует текущие значения полей календаря в fields[] в значение времени в миллисекундах time.
boolean equals(Object obj)
Сравнивает этот Calendar с указанным Object.
int get(int field)
Возвращает значение заданного поля календаря.
int getActualMaximum(int field)
Возвращает максимальное значение, которое может иметь указанное поле календаря, с учетом значения времени этого Calendar.
int getActualMinimum(int field)
Возвращает минимальное значение, которое может иметь указанное поле календаря, с учетом значения времени этого Calendar.
static Set<String> getAvailableCalendarTypes()
Возвращает неизменяемый Set, содержащий все типы календарей, поддерживаемые Calendar в среде выполнения.
static Locale[] getAvailableLocales()
Возвращает массив всех языковых локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры.
String getCalendarType()
Возвращает тип календаря этого Calendar.
String getDisplayName(int field, int style, Locale locale)
Возвращает строковое представление значения поля календаря field в заданной style и locale.
Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
Возвращает Map, содержащий все имена полей календаря field в заданной style и locale и их соответствующие значения.
int getFirstDayOfWeek()
Возвращает, какой день недели является первым; например, SUNDAY в США, MONDAY во Франции.
abstract int getGreatestMinimum(int field)
Возвращает наибольшее минимальное значение для данного поля календаря этого экземпляра Calendar.
static Calendar getInstance()
Возвращает календарь, используя по умолчанию часовой пояс и локаль.
static Calendar getInstance(Locale aLocale)
Возвращает календарь, используя по умолчанию часовой пояс и указанную локаль.
static Calendar getInstance(TimeZone zone)
Возвращает календарь, используя указанный часовой пояс и локаль по умолчанию.
static Calendar getInstance(TimeZone zone, Locale aLocale)
Возвращает календарь с указанным часовым поясом и локалью.
abstract int getLeastMaximum(int field)
Возвращает наименьшее максимальное значение для данного поля календаря этого экземпляра Calendar.
abstract int getMaximum(int field)
Возвращает максимальное значение для данного поля календаря этого экземпляра Calendar.
int getMinimalDaysInFirstWeek()
Возвращает минимальное количество дней, необходимых в первой неделе года; например, если первая неделя определяется как неделя, содержащая первый день первого месяца года, этот метод возвращает 1.
abstract int getMinimum(int field)
Возвращает минимальное значение для данного поля календаря этого экземпляра Calendar.
final Date getTime()
Возвращает объект Date, представляющий значение времени (смещение в миллисекундах от эпохи) этого Calendar.
long getTimeInMillis()
Возвращает значение времени этого календаря в миллисекундах.
TimeZone getTimeZone()
Возвращает часовой пояс.
int getWeeksInWeekYear()
Возвращает количество недель в году недели, представленной этим Calendar.
int getWeekYear()
Возвращает год недели, представленный этим Calendar.
int hashCode()
Возвращает хэш-код для этого календаря.
protected final int internalGet(int field)
Возвращает значение заданного поля календаря.
boolean isLenient()
Указывает, должна ли интерпретация даты/времени быть гибкой.
final boolean isSet(int field)
Определяет, имеет ли заданное поле календаря значение, включая случаи, когда значение было установлено внутренними расчётами полей, вызванными вызовом метода get.
boolean isWeekDateSupported()
Возвращает, поддерживает ли этот Calendar даты недели.
abstract void roll(int field, boolean up)
Добавляет или вычитает (вверх/вниз) единицу времени в заданном поле времени, не изменяя больших полей.
void roll(int field, int amount)
Добавляет указанное (знаковое) количество к указанному полю календаря, не изменяя больших полей.
void set(int field, int value)
Устанавливает заданное поле календаря в заданное значение.
final void set(int year, int month, int date)
Устанавливает значения для полей календаря YEAR, MONTH, и DAY_OF_MONTH.
final void set(int year, int month, int date, int hourOfDay, int minute)
Устанавливает значения для полей календаря YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, и MINUTE.
final void set(int year, int month, int date, int hourOfDay, int minute, int second)
Устанавливает значения для полей YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE, и SECOND.
void setFirstDayOfWeek(int value)
Устанавливает, какой день недели является первым; например, SUNDAY в США, MONDAY во Франции.
void setLenient(boolean lenient)
Указывает, должна ли интерпретация даты/времени быть гибкой.
void setMinimalDaysInFirstWeek(int value)
Устанавливает минимальное количество дней, необходимых в первой неделе года; Например, если первая неделя определяется как неделя, содержащая первый день первого месяца года, вызовите этот метод со значением 1.
final void setTime(Date date)
Устанавливает время этого календаря с помощью указанного Date.
void setTimeInMillis(long millis)
Устанавливает текущее время этого календаря из заданного значения long.
void setTimeZone(TimeZone value)
Устанавливает часовой пояс с заданным значением часового пояса.
END_OF_DOCUMENT_MARKER
void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
Устанавливает дату этого Calendar с помощью указанных спецификаторов даты — номер года недели, номер недели в году и день недели.
final Instant toInstant()
Преобразует этот объект в Instant.
String toString()
Возвращает строковое представление этого календаря.

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание полей

ERA

public static final int ERA
Номер поля для get и set, указывающий эпоху, например, AD или BC в юлианском календаре. Это значение, специфичное для календаря; см. документацию подкласса.
См. также:
  • GregorianCalendar.AD
  • GregorianCalendar.BC
  • Значения константных полей

YEAR

public static final int YEAR
Номер поля для get и set, указывающий год. Это значение, специфичное для календаря; см. документацию подкласса.
См. также:
  • Значения константных полей

MONTH

public static final int MONTH
Номер поля для get и set, указывающий месяц. Это значение, специфичное для календаря. Первый месяц года в григорианском и юлианском календарях — JANUARY, который равен 0; последний зависит от количества месяцев в году.
См. также:
  • JANUARY
  • FEBRUARY
  • MARCH
  • APRIL
  • MAY
  • JUNE
  • JULY
  • AUGUST
  • SEPTEMBER
  • OCTOBER
  • NOVEMBER
  • DECEMBER
  • UNDECIMBER
  • Значения константных полей

WEEK_OF_YEAR

public static final int WEEK_OF_YEAR
Номер поля для get и set, указывающий номер недели в текущем году. Первая неделя года, как определено getFirstDayOfWeek() и getMinimalDaysInFirstWeek(), имеет значение 1. Подклассы определяют значение WEEK_OF_YEAR для дней до первой недели года.
См. также:
  • getFirstDayOfWeek()
  • getMinimalDaysInFirstWeek()
  • Значения константных полей

WEEK_OF_MONTH

public static final int WEEK_OF_MONTH
Номер поля для get и set, указывающий номер недели в текущем месяце. Первая неделя месяца, как определено getFirstDayOfWeek() и getMinimalDaysInFirstWeek(), имеет значение 1. Подклассы определяют значение WEEK_OF_MONTH для дней до первой недели месяца.
См. также:
  • getFirstDayOfWeek()
  • getMinimalDaysInFirstWeek()
  • Значения константных полей

DATE

public static final int DATE
Номер поля для get и set, указывающий день месяца. Это синоним для DAY_OF_MONTH. Первый день месяца имеет значение 1.
См. также:
  • DAY_OF_MONTH
  • Значения константных полей

DAY_OF_MONTH

public static final int DAY_OF_MONTH
Номер поля для get и set , указывающий день месяца. Это синоним для DATE. Первый день месяца имеет значение 1.
См. также:
  • DATE
  • Значения константных полей

DAY_OF_YEAR

public static final int DAY_OF_YEAR
Номер поля для get и set , указывающий порядковый номер дня в текущем году. Первый день года имеет значение 1.
См. также:
  • Значения константных полей

DAY_OF_WEEK

public static final int DAY_OF_WEEK
Номер поля для get и set , указывающий день недели. Это поле принимает значения SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, и SATURDAY.
См. также:
  • SUNDAY
  • MONDAY
  • TUESDAY
  • WEDNESDAY
  • THURSDAY
  • FRIDAY
  • SATURDAY
  • Значения константных полей

DAY_OF_WEEK_IN_MONTH

public static final int DAY_OF_WEEK_IN_MONTH
Номер поля для get и set , указывающий порядковый номер дня недели в текущем месяце. Вместе с полем DAY_OF_WEEK, это однозначно определяет день в месяце. В отличие от WEEK_OF_MONTH и WEEK_OF_YEAR, значение этого поля не зависит от getFirstDayOfWeek() или getMinimalDaysInFirstWeek(). DAY_OF_MONTH 1 по 7 всегда соответствуют DAY_OF_WEEK_IN_MONTH 1; 8 по 14 соответствуют DAY_OF_WEEK_IN_MONTH 2, и так далее. DAY_OF_WEEK_IN_MONTH 0 указывает на неделю до DAY_OF_WEEK_IN_MONTH 1. Отрицательные значения отсчитываются от конца месяца, так что последняя воскресенье месяца указывается как DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1. Поскольку отрицательные значения отсчитываются назад, они обычно выстраиваются в месяце по-другому, чем положительные значения. Например, если месяц имеет 31 день, DAY_OF_WEEK_IN_MONTH -1 будет перекрываться DAY_OF_WEEK_IN_MONTH 5 и концом 4.
См. также:
  • DAY_OF_WEEK
  • WEEK_OF_MONTH
  • Значения константных полей

AM_PM

public static final int AM_PM
Номер поля для get и set , указывающий, до или после полудня является HOUR. Например, в 10:04:15.250 вечера AM_PM равно PM.
См. также:
  • AM
  • PM
  • HOUR
  • Значения константных полей

HOUR

public static final int HOUR
Номер поля для get и set , указывающий час утра или дня. HOUR используется для 12-часовых часов (0 - 11). Полдень и полночь представлены 0, а не 12. Например, в 10:04:15.250 вечера HOUR равно 10.
См. также:
  • AM_PM
  • HOUR_OF_DAY
  • Значения константных полей

HOUR_OF_DAY

public static final int HOUR_OF_DAY
Номер поля для get и set , указывающий час дня. HOUR_OF_DAY используется для 24-часовых часов. Например, в 10:04:15.250 вечера HOUR_OF_DAY равно 22.
См. также:
  • HOUR
  • Значения константных полей

MINUTE

public static final int MINUTE
Номер поля для get и set , указывающий минуту в часе. Например, в 10:04:15.250 вечера MINUTE равно 4.
См. также:
  • Значения константных полей

ВТОРАЯ

public static final int SECOND
Номер поля для get и set , указывающий на секунду в минуте. Например, в 23:04:15.250 поле SECOND равно 15.
См. также:
  • Значения константных полей

МИЛЛИСЕКУНДА

public static final int MILLISECOND
Номер поля для get и set , указывающий на миллисекунду в секунде. Например, в 23:04:15.250 поле MILLISECOND равно 250.
См. также:
  • Значения константных полей

ВРЕМЕННАЯ_ЗОНА_СМЕЩЕНИЕ

public static final int ZONE_OFFSET
Номер поля для get и set , указывающий на смещение от GMT в миллисекундах.

Это поле отражает правильное смещение от GMT для часового пояса этого Calendar , если реализация класса TimeZone поддерживает изменения исторических смещений от GMT.

См. также:
  • Значения константных полей

DST_СМЕЩЕНИЕ

public static final int DST_OFFSET
Номер поля для get и set , указывающий на смещение летнего времени в миллисекундах.

Это поле отражает правильное смещение летнего времени для часового пояса этого Calendar , если реализация класса TimeZone поддерживает изменения исторических графиков летнего времени.

См. также:
  • Значения константных полей

КОЛИЧЕСТВО_ПОЛЕЙ

public static final int FIELD_COUNT
Количество различных полей, распознаваемых get и set. Номера полей варьируются от 0..FIELD_COUNT-1.
См. также:
  • Значения константных полей

ВОСКРЕСЕНЬЕ

public static final int SUNDAY
Значение поля DAY_OF_WEEK, указывающее на воскресенье.
См. также:
  • Значения константных полей

ПОНЕДЕЛЬНИК

public static final int MONDAY
Значение поля DAY_OF_WEEK, указывающее на понедельник.
См. также:
  • Значения константных полей

ВТОРНИК

public static final int TUESDAY
Значение поля DAY_OF_WEEK, указывающее на вторник.
См. также:
  • Значения константных полей

СРЕДА

public static final int WEDNESDAY
Значение поля DAY_OF_WEEK, указывающее на среду.
См. также:
  • Значения константных полей

ЧЕТВЕРГ

public static final int THURSDAY
Значение поля DAY_OF_WEEK, указывающее на четверг.
См. также:
  • Значения константных полей

ПЯТНИЦА

public static final int FRIDAY
Значение поля DAY_OF_WEEK, указывающее на пятницу.
См. также:
  • Значения константных полей

СУББОТА

public static final int SATURDAY
Значение поля DAY_OF_WEEK, указывающее на субботу.
См. также:
  • Значения константных полей

ЯНВАРЬ

public static final int JANUARY
Значение поля MONTH, указывающее на первый месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

ФЕВРАЛЬ

public static final int FEBRUARY
Значение поля MONTH, указывающее на второй месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

МАРТ

public static final int MARCH
Значение поля MONTH, указывающее на третий месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

АПРЕЛЬ

public static final int APRIL
Значение поля MONTH, указывающее на четвёртый месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

МАЙ

public static final int MAY
Значение поля MONTH, указывающее на пятый месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

ИЮНЬ

public static final int JUNE
Значение поля MONTH, указывающее на шестой месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

ИЮЛЬ

public static final int JULY
Значение поля MONTH, указывающее на седьмой месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

АВГУСТ

public static final int AUGUST
Значение поля MONTH, указывающее на восьмой месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

СЕНТЯБРЬ

public static final int SEPTEMBER
Значение поля MONTH, указывающее на девятый месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

ОКТЯБРЬ

public static final int OCTOBER
Значение поля MONTH, указывающее на десятый месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

НОЯБРЬ

public static final int NOVEMBER
Значение поля MONTH, указывающее на одиннадцатый месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

ДЕКАБРЬ

public static final int DECEMBER
Значение поля MONTH, указывающее на двенадцатый месяц года в григорианском и юлианском календарях.
См. также:
  • Значения константных полей

UNDECIMBER

public static final int UNDECIMBER
Значение поля MONTH, указывающее на тринадцатый месяц года. Хотя GregorianCalendar не использует это значение, лунные календари используют.
См. также:
  • Constant Field Values

AM

public static final int AM
Значение поля AM_PM, указывающее на период дня с полуночи до полудня.
См. также:
  • Constant Field Values

PM

public static final int PM
Значение поля AM_PM, указывающее на период дня с полудня до полуночи.
См. также:
  • Constant Field Values

ALL_STYLES

public static final int ALL_STYLES
Спецификатор стиля для getDisplayNames, указывающий на имена во всех стилях, таких как "January" и "Jan".
С версии:
1.6
См. также:
  • SHORT_FORMAT
  • LONG_FORMAT
  • SHORT_STANDALONE
  • LONG_STANDALONE
  • SHORT
  • LONG
  • Constant Field Values

SHORT

public static final int SHORT
Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный SHORT_FORMAT.
С версии:
1.6
См. также:
  • SHORT_STANDALONE
  • LONG
  • Constant Field Values

LONG

public static final int LONG
Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный LONG_FORMAT.
С версии:
1.6
См. также:
  • LONG_STANDALONE
  • SHORT
  • Constant Field Values

NARROW_FORMAT

public static final int NARROW_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на короткое имя, используемое для форматирования. Короткие имена обычно представляют собой односимвольные строки, например, "M" для понедельника.
С версии:
1.8
См. также:
  • NARROW_STANDALONE
  • SHORT_FORMAT
  • LONG_FORMAT
  • Constant Field Values

NARROW_STANDALONE

public static final int NARROW_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на короткое имя, используемое независимо. Короткие имена обычно представляют собой односимвольные строки, например, "M" для понедельника.
С версии:
1.8
См. также:
  • NARROW_FORMAT
  • SHORT_STANDALONE
  • LONG_STANDALONE
  • Constant Field Values

SHORT_FORMAT

public static final int SHORT_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на короткое имя, используемое для форматирования.
С версии:
1.8
См. также:
  • SHORT_STANDALONE
  • LONG_FORMAT
  • LONG_STANDALONE
  • Constant Field Values

LONG_FORMAT

public static final int LONG_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на полное имя, используемое для форматирования.
С версии:
1.8
См. также:
  • LONG_STANDALONE
  • SHORT_FORMAT
  • SHORT_STANDALONE
  • Constant Field Values

SHORT_STANDALONE

public static final int SHORT_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на короткое имя, используемое независимо, например, сокращение месяца в заголовках календаря.
С версии:
1.8
См. также:
  • SHORT_FORMAT
  • LONG_FORMAT
  • LONG_STANDALONE
  • Constant Field Values

LONG_STANDALONE

public static final int LONG_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на полное имя, используемое независимо, например, название месяца в заголовках календаря.
С версии:
1.8
См. также:
  • LONG_FORMAT
  • SHORT_FORMAT
  • SHORT_STANDALONE
  • Constant Field Values

fields

protected int[] fields
Значения полей календаря для текущего установленного времени этого календаря. Это массив из FIELD_COUNT целых чисел с индексами от ERA до DST_OFFSET.

isSet

protected boolean[] isSet
Флаги, указывающие, установлено ли определенное поле календаря. Новый объект не имеет установленных полей. После первого вызова метода, который генерирует поля, все они остаются установленными после этого. Это массив из FIELD_COUNT булевых значений с индексами от ERA до DST_OFFSET.

time

protected long time
Текущее установленное время для этого календаря, выраженное в миллисекундах после 1 января 1970 года, 0:00:00 GMT.
См. также:
  • isTimeSet

isTimeSet

protected boolean isTimeSet
Истина, если значение time действительно. Время становится недействительным при изменении элемента field[].
См. также:
  • time

areFieldsSet

protected boolean areFieldsSet
Истина, если fields[] синхронизированы с текущим установленным временем. Если ложно, то следующая попытка получить значение поля приведет к пересчету всех полей из текущего значения time.

Подробное описание конструкторов

Calendar

protected Calendar()
Создает объект Calendar с часовым поясом по умолчанию и локалью по умолчанию FORMAT.
См. также:
  • TimeZone.getDefault()

Calendar

protected Calendar(TimeZone zone, Locale aLocale)
Создает календарь с указанным часовым поясом и локалью.
Параметры:
zone - используемый часовой пояс
aLocale - локаль для данных недели

Подробное описание методов

getInstance

public static Calendar getInstance()
Получает календарь, используя по умолчанию часовой пояс и локаль. Возвращаемый Calendar основан на текущем времени в часовом поясе по умолчанию с локалью по умолчанию FORMAT.

Если локаль содержит часовой пояс с "tz" расширением Unicode, используется этот часовой пояс.

Возвращает:
календарь.

getInstance

public static Calendar getInstance(TimeZone zone)
Получает календарь, используя указанный часовой пояс и локаль по умолчанию. Возвращаемый Calendar основан на текущем времени в заданном часовом поясе с локалью по умолчанию FORMAT.
Параметры:
zone - используемый часовой пояс
Возвращает:
календарь.

getInstance

public static Calendar getInstance(Locale aLocale)
Получает календарь, используя часовой пояс по умолчанию и указанную локаль. Возвращаемый Calendar основан на текущем времени в часовом поясе по умолчанию с заданной локалью.

Если локаль содержит часовой пояс с "tz" расширением Unicode, используется этот часовой пояс.

Параметры:
aLocale - локаль для данных о неделе
Возвращает:
календарь.

getInstance

public static Calendar getInstance(TimeZone zone, Locale aLocale)
Получает календарь с указанным часовым поясом и локалью. Возвращаемый Calendar основан на текущем времени в заданном часовом поясе с заданной локалью.
Параметры:
zone - используемый часовой пояс
aLocale - локаль для данных о неделе
Возвращает:
календарь.

getAvailableLocales

public static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы этого класса могут возвращать локализованные экземпляры. Возвращаемый массив должен содержать, по крайней мере, экземпляр Locale равный Locale.US.
Возвращает:
Массив локалей, для которых локализованные Calendar экземпляры доступны.

computeTime

protected abstract void computeTime()
Преобразует текущие значения полей календаря в fields[] в значение времени в миллисекундах time.
См. также:
  • complete()
  • computeFields()

computeFields

protected abstract void computeFields()
Преобразует текущее значение времени в миллисекундах time в значения полей календаря в fields[]. Это позволяет вам синхронизировать значения полей календаря с новым временем, установленным для календаря. Время не пересчитывается сначала; для пересчета времени, а затем полей, вызовите метод complete().
См. также:
  • computeTime()

getTime

public final Date getTime()
Возвращает объект Date , представляющий значение времени этого Calendar (смещение в миллисекундах от эпохи).
Возвращает:
объект Date , представляющий значение времени.
См. также:
  • setTime(Date)
  • getTimeInMillis()

setTime

public final void setTime(Date date)
Устанавливает время этого календаря с помощью заданного Date.

Примечание: вызов setTime() с Date(Long.MAX_VALUE) или Date(Long.MIN_VALUE) может привести к некорректным значениям полей из get().

Параметры:
date - заданная дата.
Исключения:
NullPointerException - если date равно null
См. также:
  • getTime()
  • setTimeInMillis(long)

getTimeInMillis

public long getTimeInMillis()
Возвращает значение времени этого календаря в миллисекундах.
Возвращает:
текущее время в миллисекундах UTC с момента эпохи.
См. также:
  • getTime()
  • setTimeInMillis(long)

setTimeInMillis

public void setTimeInMillis(long millis)
Устанавливает текущее время этого календаря из заданного значения long.
Параметры:
millis - новое время в миллисекундах UTC с момента эпохи.
См. также:
  • setTime(Date)
  • getTimeInMillis()

get

public int get(int field)
Возвращает значение заданного поля календаря. В режиме «попустительного» (lenient) все поля календаря нормализуются. В режиме «строгого» (non-lenient) все поля календаря проверяются, и этот метод выбрасывает исключение, если какие-либо поля календаря имеют значения, выходящие за пределы допустимого диапазона. Нормализация и проверка выполняются методом complete(), процесс зависит от системы календаря.
Параметры:
field - заданное поле календаря.
Возвращает:
значение заданного поля календаря.
Исключения:
ArrayIndexOutOfBoundsException - если заданное поле выходит за пределы диапазона (field < 0 || field >= FIELD_COUNT).
См. также:
  • set(int,int)
  • complete()

internalGet

protected final int internalGet(int field)
Возвращает значение заданного поля календаря. Этот метод не включает нормализацию или проверку значения поля.
Параметры:
field - заданное поле календаря.
Возвращает:
значение заданного поля календаря.
См. также:
  • get(int)

set

public void set(int field, int value)
Устанавливает заданное поле календаря в заданное значение. Значение не интерпретируется этим методом независимо от режима допуска.
Параметры:
field - заданное поле календаря.
value - значение для установки заданного поля календаря.
Исключения:
ArrayIndexOutOfBoundsException - если указанное поле выходит за пределы диапазона (field < 0 || field >= FIELD_COUNT). в режиме не допуска.
См. также:
  • set(int,int,int)
  • set(int,int,int,int,int)
  • set(int,int,int,int,int,int)
  • get(int)

set

public final void set(int year, int month, int date)
Устанавливает значения для полей календаря YEAR, MONTH, и DAY_OF_MONTH. Предыдущие значения других полей календаря сохраняются. Если этого не нужно, сначала вызовите clear().
Параметры:
year - значение, используемое для установки поля календаря YEAR.
month - значение, используемое для установки поля календаря MONTH. Значение месяца основано на нуле (0-based). Например, 0 для января.
date - значение, используемое для установки поля календаря DAY_OF_MONTH.
См. также:
  • set(int,int)
  • set(int,int,int,int,int)
  • set(int,int,int,int,int,int)

set

public final void set(int year, int month, int date, int hourOfDay, int minute)
Устанавливает значения для полей календаря YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, и MINUTE. Предыдущие значения других полей сохраняются. Если этого не нужно, сначала вызовите clear().
Параметры:
year - значение, используемое для установки поля календаря YEAR.
month - значение, используемое для установки поля календаря MONTH. Значение месяца основано на нуле (0-based). Например, 0 для января.
date - значение, используемое для установки поля календаря DAY_OF_MONTH.
hourOfDay - значение, используемое для установки поля календаря HOUR_OF_DAY.
minute - значение, используемое для установки поля календаря MINUTE.
См. также:
  • set(int,int)
  • set(int,int,int)
  • set(int,int,int,int,int,int)

set

public final void set(int year, int month, int date, int hourOfDay, int minute, int second)
Устанавливает значения для полей YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE и SECOND. Предыдущие значения других полей сохраняются. Если это нежелательно, сначала вызовите clear().
Параметры:
year - значение, используемое для установки поля календаря YEAR.
month - значение, используемое для установки поля календаря MONTH. Значение месяца начинается с 0. Например, 0 для января.
date - значение, используемое для установки поля календаря DAY_OF_MONTH.
hourOfDay - значение, используемое для установки поля календаря HOUR_OF_DAY.
minute - значение, используемое для установки поля календаря MINUTE.
second - значение, используемое для установки поля календаря SECOND.
См. также:
  • set(int,int)
  • set(int,int,int)
  • set(int,int,int,int,int)

clear

public final void clear()
Устанавливает все значения полей календаря и значение времени (смещение в миллисекундах от эпохи) этого Calendar как неопределённые. Это означает, что isSet() вернёт false для всех полей календаря, и вычисления даты и времени будут обрабатывать поля так, как если бы они никогда не были установлены. Класс реализации Calendar может использовать свои собственные значения полей по умолчанию для вычислений даты/времени. Например, GregorianCalendar использует 1970, если значение поля YEAR неопределено.
См. также:
  • clear(int)

clear

public final void clear(int field)
Устанавливает значение заданного поля календаря и значение времени (смещение в миллисекундах от эпохи) этого Calendar как неопределённые. Это означает, что isSet(field) вернёт false, и вычисления даты и времени будут обрабатывать поле так, как если бы оно никогда не было установлено. Класс реализации Calendar может использовать значение по умолчанию для данного поля для вычислений даты и времени.

Поля HOUR_OF_DAY, HOUR и AM_PM обрабатываются независимо, и применяется правило разрешения для времени суток. Очистка одного из полей не сбрасывает значение часа суток этого Calendar. Используйте set(Calendar.HOUR_OF_DAY, 0) для сброса значения часа.

Параметры:
field - поле календаря, которое необходимо очистить.
См. также:
  • clear()

isSet

public final boolean isSet(int field)
Определяет, установлено ли значение для заданного поля календаря, включая случаи, когда значение было установлено внутренними вычислениями полей, вызванными вызовом метода get.
Параметры:
field - поле календаря для проверки
Возвращает:
true если для заданного поля календаря установлено значение; false в противном случае.

getDisplayName

public String getDisplayName(int field, int style, Locale locale)
Возвращает строковое представление значения поля календаря field в заданной style и locale. Если строковое представление неприменимо, возвращается null. Этот метод вызывает get(field) для получения значения поля календаря field, если строковое представление применимо к заданному полю календаря field.

Например, если этот Calendar является GregorianCalendar и его дата — 2005-01-01, то строковое представление поля MONTH будет "January" в длинном стиле в английской локали или "Jan" в коротком стиле. Однако строковое представление для поля DAY_OF_MONTH недоступно, и этот метод вернёт null.

Реализация по умолчанию поддерживает поля календаря, для которых DateFormatSymbols имеет имена в заданной locale.

Параметры:
field - поле календаря, для которого возвращается строковое представление
style - стиль, применяемый к строковому представлению; один из SHORT_FORMAT (SHORT), SHORT_STANDALONE, LONG_FORMAT (LONG), LONG_STANDALONE, NARROW_FORMAT или NARROW_STANDALONE.
locale - локаль для строкового представления (любые типы календаря, указанные locale, игнорируются)
Возвращает:
строковое представление заданного field в заданной style, или null если строковое представление неприменимо.
Исключения:
IllegalArgumentException - если field или style неверно, или если этот Calendar не является снисходительным и какие-либо поля календаря имеют недопустимые значения
NullPointerException - если locale равно null
С версии:
1.6

getDisplayNames

public Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
Возвращает Map , содержащий все имена поля календаря field в заданной style и locale и их соответствующие значения. Например, если этот Calendar является GregorianCalendar, возвращаемая карта будет содержать "Jan" для JANUARY, "Feb" для FEBRUARY и так далее, в коротком стиле в английской локали.

Узкие имена могут быть не уникальными из-за использования одиночных символов, таких как "S" для воскресенья и субботы. В этом случае узкие имена не включаются в возвращаемый Map.

Для определения набора отображаемых имён могут учитываться значения других полей календаря. Например, если этот Calendar является лунно-солнечной системой календаря, и год, заданный полем YEAR, имеет високосный месяц, этот метод вернёт имена месяцев, содержащие имя високосного месяца, а имена месяцев сопоставлены с их значениями, специфичными для года.

Реализация по умолчанию поддерживает отображаемые имена, содержащиеся в DateFormatSymbols. Например, если field равно MONTH, а style равно ALL_STYLES, этот метод возвращает Map, содержащий все строки, возвращаемые методами DateFormatSymbols.getShortMonths() и DateFormatSymbols.getMonths().

Параметры:
field - поле календаря, для которого возвращаются отображаемые имена
style - стиль, применяемый к строковому представлению; один из SHORT_FORMAT (SHORT), SHORT_STANDALONE, LONG_FORMAT (LONG), LONG_STANDALONE, NARROW_FORMAT или NARROW_STANDALONE
locale - локаль для отображаемых имён
Возвращает:
Map , содержащий все отображаемые имена в style и locale и их значения полей, или null , если отображаемые имена не определены для field
Исключения:
IllegalArgumentException - если field или style неверно, или если этот Calendar не является снисходительным и какие-либо поля календаря имеют недопустимые значения
NullPointerException - если locale равно null
С версии:
1.6

complete

protected void complete()
Заполняет все неустановленные поля в полях календаря. Сначала вызывается метод computeTime(), если значение времени (смещение в миллисекундах от эпохи) не было вычислено из значений полей календаря. Затем вызывается метод computeFields() для вычисления всех значений полей календаря.

getAvailableCalendarTypes

public static Set<String> getAvailableCalendarTypes()
Возвращает неизменяемый Set, содержащий все типы календарей, поддерживаемые Calendar в среде выполнения. Доступные типы календарей могут использоваться для расширений локали Unicode. Возвращаемый Set содержит как минимум "gregory". Типы календарей не включают псевдонимы, такие как "gregorian" для "gregory".
Возвращает:
неизменяемый Set, содержащий все доступные типы календарей
С версии:
1.8
См. также:
  • getCalendarType()
  • Calendar.Builder.setCalendarType(String)
  • Locale.getUnicodeLocaleType(String)

getCalendarType

public String getCalendarType()
Возвращает тип календаря этого Calendar. Типы календарей определяются спецификацией Unicode Locale Data Markup Language (LDML).

По умолчанию этот метод возвращает имя класса этого экземпляра Calendar. Любые подклассы, реализующие LDML-определенные системы календарей, должны переопределить этот метод, чтобы возвращать соответствующие типы календарей.

Возвращает:
определенный LDML тип календаря или имя класса этого экземпляра Calendar
С:
1.8
См. также:
  • Расширения локалей
  • Locale.Builder.setLocale(Locale)
  • Locale.Builder.setUnicodeLocaleKeyword(String, String)

equals

public boolean equals(Object obj)
Сравнивает этот Calendar с указанным Object. Результат равен true, если и только если аргумент является объектом Calendar той же системы календарей, представляющим то же значение времени (смещение в миллисекундах от эпохи) при тех же Calendar параметрах, что и этот объект.

Calendar параметры — это значения, представленные методами isLenient, getFirstDayOfWeek, getMinimalDaysInFirstWeek и getTimeZone. Если в параметрах этих двух Calendar есть какие-либо различия, этот метод возвращает false.

Используйте метод compareTo для сравнения только значений времени.

Переопределяет:
equals в классе Object
Параметры:
obj - объект для сравнения.
Возвращает:
true если этот объект равен obj; false в противном случае.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает хэш-код для этого календаря.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого объекта.
С:
1.2
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

before

public boolean before(Object when)
Возвращает, соответствует ли этот Calendar времени до времени, представленного указанным Object. Этот метод эквивалентен:

         compareTo(when) < 0
 
если и только если when является экземпляром Calendar. В противном случае метод возвращает false.
Параметры:
when - Object для сравнения
Возвращает:
true если время этого Calendar до времени, представленного when; false в противном случае.
См. также:
  • compareTo(Calendar)

after

public boolean after(Object when)
Возвращает, соответствует ли этот Calendar времени после времени, представленного указанным Object. Этот метод эквивалентен:

         compareTo(when) > 0
 
если и только если when является экземпляром Calendar. В противном случае метод возвращает false.
Параметры:
when - Object для сравнения
Возвращает:
true если время этого Calendar после времени, представленного when; false в противном случае.
См. также:
  • compareTo(Calendar)

compareTo

public int compareTo(Calendar anotherCalendar)
Сравнивает значения времени (смещения в миллисекундах от эпохи) двух объектов Calendar.
Определяется:
compareTo в интерфейсе Comparable<Calendar>
Параметры:
anotherCalendar - Calendar для сравнения.
Возвращает:
значение 0 если время, представленное аргументом, равно времени, представленному этим Calendar; значение меньше 0, если время этого Calendar раньше времени, представленного аргументом; и значение больше 0, если время этого Calendar позже времени, представленного аргументом.
Исключения:
NullPointerException - если указанный Calendar null.
IllegalArgumentException - если значение времени указанного объекта Calendar не может быть получено из-за недопустимых значений календаря.
С:
1.5

add

public abstract void add(int field, int amount)
Добавляет или вычитает указанное количество времени к заданному полю календаря, основываясь на правилах календаря. Например, чтобы вычесть 5 дней из текущего времени календаря, можно вызвать:

add(Calendar.DAY_OF_MONTH, -5).

Параметры:
field - поле календаря.
amount - количество добавляемого времени.
См. также:
  • roll(int,int)
  • set(int,int)

roll

public abstract void roll(int field, boolean up)
Добавляет или вычитает (вверх/вниз) единицу времени по заданному полю времени, не изменяя большие поля. Например, чтобы переместить текущую дату на один день вверх, можно вызвать:

roll(Calendar.DATE, true). При перелистывании года или поля Calendar.YEAR, он перелистывает значение года в диапазоне от 1 до значения, возвращаемого вызовом getMaximum(Calendar.YEAR). При перелистывании месяца или поля Calendar.MONTH, другие поля, такие как дата, могут конфликтовать и должны быть изменены. Например, перелистывание месяца по дате 01/31/96 приведет к 02/29/96. При перелистывании часа или поля Calendar.HOUR_OF_DAY, он перелистывает значение часа в диапазоне от 0 до 23, который имеет нулевое значение.

Параметры:
field - поле времени.
up - указывает, должно ли значение указанного поля времени быть перелистовано вверх или вниз. Используйте true, если перелистывание вверх, false в противном случае.
См. также:
  • add(int,int)
  • set(int,int)

roll

public void roll(int field, int amount)
Добавляет указанное (со знаком) количество к указанному полю календаря, не изменяя больших полей. Отрицательное значение означает перелистывание вниз.

ПРИМЕЧАНИЕ: Эта реализация по умолчанию для Calendar просто многократно вызывает версию roll(), которая перелистывает на одну единицу. Это не всегда правильно. Например, если поле DAY_OF_MONTH равно 31, перелистывание через февраль оставит его равным 28. Версия GregorianCalendar этой функции решает эту проблему. Другие подклассы также должны предоставить переопределения этой функции, которые делают все правильно.

Параметры:
field - поле календаря.
amount - количество со знаком для добавления к полю field календаря.
С:
1.2
См. также:
  • roll(int,boolean)
  • add(int,int)
  • set(int,int)

setTimeZone

public void setTimeZone(TimeZone value)
Устанавливает часовой пояс с заданным значением часового пояса.
Параметры:
value - заданный часовой пояс.

getTimeZone

public TimeZone getTimeZone()
Возвращает часовой пояс.
Возвращает:
объект часового пояса, связанный с этим календарем.

setLenient

public void setLenient(boolean lenient)
Указывает, разрешена ли мягкая интерпретация дат/времени. При мягкой интерпретации дата, такая как "февраль 942, 1996", будет обрабатываться как эквивалентная 941-му дню после 1 февраля 1996 года. При строгой (не мягкой) интерпретации такие даты приведут к возбуждению исключения. По умолчанию интерпретация мягкая.
Параметры:
lenient - true если режим мягкости включить; false если его выключить.
См. также:
  • isLenient()
  • DateFormat.setLenient(boolean)

isLenient

public boolean isLenient()
Указывает, разрешена ли мягкая интерпретация дат/времени.
Возвращает:
true если режим интерпретации этого календаря мягкий; false в противном случае.
См. также:
  • setLenient(boolean)

setFirstDayOfWeek

public void setFirstDayOfWeek(int value)
Устанавливает, какой день является первым днем недели; например, SUNDAY в США, MONDAY во Франции.
Parameters:
value - заданный первый день недели.
See Also:
  • getFirstDayOfWeek()
  • getMinimalDaysInFirstWeek()

getFirstDayOfWeek

public int getFirstDayOfWeek()
Возвращает, какой день является первым днем недели; например, SUNDAY в США, MONDAY во Франции.
Returns:
первый день недели.
See Also:
  • setFirstDayOfWeek(int)
  • getMinimalDaysInFirstWeek()

setMinimalDaysInFirstWeek

public void setMinimalDaysInFirstWeek(int value)
Устанавливает минимальное количество дней, необходимых в первой неделе года; Например, если первая неделя определяется как неделя, содержащая первый день первого месяца года, вызовите этот метод со значением 1. Если это должна быть полная неделя, используйте значение 7.
Parameters:
value - заданное минимальное количество дней, необходимых в первой неделе года.
See Also:
  • getMinimalDaysInFirstWeek()

getMinimalDaysInFirstWeek

public int getMinimalDaysInFirstWeek()
Возвращает минимальное количество дней, необходимых в первой неделе года; например, если первая неделя определяется как неделя, содержащая первый день первого месяца года, этот метод возвращает 1. Если минимальное количество дней должно составлять полную неделю, этот метод возвращает 7.
Returns:
минимальное количество дней, необходимых в первой неделе года.
See Also:
  • setMinimalDaysInFirstWeek(int)

isWeekDateSupported

public boolean isWeekDateSupported()
Возвращает, поддерживает ли этот Calendar даты недель.

Реализация по умолчанию этого метода возвращает false.

Returns:
true если этот Calendar поддерживает даты недель; false в противном случае.
Since:
1.7
See Also:
  • getWeekYear()
  • setWeekDate(int,int,int)
  • getWeeksInWeekYear()

getWeekYear

public int getWeekYear()
Возвращает год недели, представленный этим Calendar. Год недели синхронизирован с циклом недель. Первый день первой недели — это первый день года недели.

Реализация по умолчанию этого метода выбрасывает исключение UnsupportedOperationException.

Returns:
год недели этого Calendar
Throws:
UnsupportedOperationException - если какая-либо нумерация годов недель не поддерживается в этом Calendar.
Since:
1.7
See Also:
  • isWeekDateSupported()
  • getFirstDayOfWeek()
  • getMinimalDaysInFirstWeek()

setWeekDate

public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
Устанавливает дату этого Calendar с заданными спецификаторами даты: годом недели, номером недели и днем недели.

В отличие от метода set, все значения полей календаря и time вычисляются при возврате.

Если weekOfYear находится вне допустимого диапазона номера недели в weekYear, значения weekYear и weekOfYear корректируются в режиме мягкого режима, или выбрасывается исключение IllegalArgumentException в режиме строгого режима.

Реализация по умолчанию этого метода выбрасывает исключение UnsupportedOperationException.

Parameters:
weekYear - год недели
weekOfYear - номер недели на основе weekYear
dayOfWeek - значение дня недели: одно из констант для поля DAY_OF_WEEK: SUNDAY, ..., SATURDAY.
Throws:
IllegalArgumentException - если какое-либо из заданных спецификаторов даты недействительно или любое из полей календаря несовместимо с заданными спецификаторами даты в строгом режиме
UnsupportedOperationException - если какая-либо нумерация годов недель не поддерживается в этом Calendar.
Since:
1.7
See Also:
  • isWeekDateSupported()
  • getFirstDayOfWeek()
  • getMinimalDaysInFirstWeek()

getWeeksInWeekYear

public int getWeeksInWeekYear()
Возвращает количество недель в году недели, представленном этим Calendar.

Реализация по умолчанию этого метода выбрасывает исключение UnsupportedOperationException.

Returns:
количество недель в году недели.
Throws:
UnsupportedOperationException - если какая-либо нумерация годов недель не поддерживается в этом Calendar.
Since:
1.7
See Also:
  • WEEK_OF_YEAR
  • isWeekDateSupported()
  • getWeekYear()
  • getActualMaximum(int)

getMinimum

public abstract int getMinimum(int field)
Возвращает минимальное значение для заданного поля календаря этого экземпляра Calendar. Минимальное значение определяется как наименьшее значение, возвращаемое методом get для любого возможного значения времени. Минимальное значение зависит от параметров системы календаря экземпляра.
Parameters:
field - поле календаря.
Returns:
минимальное значение для заданного поля календаря.
See Also:
  • getMaximum(int)
  • getGreatestMinimum(int)
  • getLeastMaximum(int)
  • getActualMinimum(int)
  • getActualMaximum(int)

getMaximum

public abstract int getMaximum(int field)
Возвращает максимальное значение для заданного поля календаря этого экземпляра Calendar. Максимальное значение определяется как наибольшее значение, возвращаемое методом get для любого возможного значения времени. Максимальное значение зависит от параметров системы календаря экземпляра.
Parameters:
field - поле календаря.
Returns:
максимальное значение для заданного поля календаря.
See Also:
  • getMinimum(int)
  • getGreatestMinimum(int)
  • getLeastMaximum(int)
  • getActualMinimum(int)
  • getActualMaximum(int)

getGreatestMinimum

public abstract int getGreatestMinimum(int field)
Возвращает наибольшее минимальное значение для заданного поля календаря этого экземпляра Calendar. Наибольшее минимальное значение определяется как наибольшее значение, возвращаемое методом getActualMinimum(int) для любого возможного значения времени. Наибольшее минимальное значение зависит от параметров системы календаря экземпляра.
Parameters:
field - поле календаря.
Returns:
наибольшее минимальное значение для заданного поля календаря.
See Also:
  • getMinimum(int)
  • getMaximum(int)
  • getLeastMaximum(int)
  • getActualMinimum(int)
  • getActualMaximum(int)

getLeastMaximum

public abstract int getLeastMaximum(int field)
Возвращает наименьшее максимальное значение для заданного поля календаря этого экземпляра Calendar. Наименьшее максимальное значение определяется как наименьшее значение, возвращаемое методом getActualMaximum(int) для любого возможного значения времени. Наименьшее максимальное значение зависит от параметров системы календаря экземпляра. Например, для системы календаря Григорианский календарь возвращает 28 для поля DAY_OF_MONTH, потому что 28-е число является последним днем самого короткого месяца в этом календаре, февраля в обычном году.
Parameters:
field - поле календаря.
Returns:
наименьшее максимальное значение для заданного поля календаря.
See Also:
  • getMinimum(int)
  • getMaximum(int)
  • getGreatestMinimum(int)
  • getActualMinimum(int)
  • getActualMaximum(int)

getActualMinimum

public int getActualMinimum(int field)
Возвращает минимальное значение, которое может иметь указанное поле календаря, учитывая значение времени этого Calendar.

Реализация по умолчанию этого метода использует итеративный алгоритм для определения фактического минимального значения поля календаря. Подклассы должны, при возможности, переопределить его более эффективной реализацией — во многих случаях они могут просто вернуть getMinimum().

Parameters:
field - поле календаря
Returns:
минимальное значение данного поля календаря для значения времени этого Calendar
Since:
1.2
See Also:
  • getMinimum(int)
  • getMaximum(int)
  • getGreatestMinimum(int)
  • getLeastMaximum(int)
  • getActualMaximum(int)

getActualMaximum

public int getActualMaximum(int field)
Возвращает максимальное значение, которое может иметь указанное поле календаря, учитывая значение времени этого Calendar. Например, фактическое максимальное значение поля MONTH составляет 12 в некоторых годах и 13 в других годах в системе календаря иврита.

Реализация по умолчанию этого метода использует итеративный алгоритм для определения фактического максимального значения поля календаря. Подклассы должны, при возможности, переопределить его более эффективной реализацией.

Parameters:
field - поле календаря
Returns:
максимальное значение данного поля календаря для значения времени этого Calendar
Since:
1.2
See Also:
  • getMinimum(int)
  • getMaximum(int)
  • getGreatestMinimum(int)
  • getLeastMaximum(int)
  • getActualMinimum(int)

clone

public Object clone()
Создаёт и возвращает копию этого объекта.
Overrides:
clone в классе Object
Returns:
копию этого объекта.
See Also:
  • Cloneable

toString

public String toString()
Возвращает строковое представление этого календаря. Этот метод предназначен только для отладки, и формат возвращаемой строки может отличаться в разных реализациях. Возвращаемая строка может быть пустой, но не может быть null.
Overrides:
toString в классе Object
Returns:
строковое представление этого календаря.

toInstant

public final Instant toInstant()
Преобразует этот объект в Instant.

Преобразование создаёт Instant, представляющий ту же точку на временной шкале, что и этот Calendar.

Returns:
момент времени, представляющий ту же точку на временной шкале
Since:
1.8

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Calendar.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API