Spec-Zone.ru › OpenJDK 25

Класс 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, содержащий параметр int field, выбрасывает ArrayIndexOutOfBoundsException, если указанное поле выходит за пределы диапазона (field < 0 || field >= FIELD_COUNT).

Допустимость некорректных значений

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 может обозначать неделю перед неделей 1 года как неделю 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 года. Это временное внутреннее представление, которое при последующем вызове getTime() разрешается в 1 октября 1999 года. Однако вызов 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 из различных параметров даты и времени.

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

Модификатор и тип Поле Описание
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, указывающий короткое название, используемое для форматирования.
static final int SHORT_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий короткое название для самостоятельного использования, например сокращение названия месяца в заголовках календаря.
static final int SUNDAY
Значение поля DAY_OF_WEEK, указывающее на воскресенье.
static final int THURSDAY
Значение поля DAY_OF_WEEK, указывающее на четверг.
protected long time
Установленное в данный момент время этого календаря, выраженное в миллисекундах после 1 января 1970 г., 00:00:00 GMT.
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()
Возвращает значение времени этого Calendar в миллисекундах.
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)
Устанавливает время этого Calendar с помощью заданного Date.
void setTimeInMillis(long millis)
Устанавливает текущее время этого Calendar из заданного значения типа long.
void setTimeZone(TimeZone value)
Устанавливает часовой пояс, используя заданное значение часового пояса.
void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
Устанавливает дату этого Calendar с помощью заданных параметров даты: недели-года, недели года и дня недели.
final Instant toInstant()
Преобразует этот объект в Instant.
String toString()
Возвращает строковое представление этого календаря.

Методы, объявленные в классе 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. В противном случае допускаются любые значения типа int, которые нормализуются до одного из перечисленных значений.
См. также:
  • 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 PM значение AM_PM равно PM.
См. также:
  • AM
  • PM
  • HOUR
  • Значения констант полей

HOUR

public static final int HOUR
Номер поля для get и set, указывающий час до или после полудня. HOUR используется для 12-часового формата (0–11). Полдень и полночь представляются значением 0, а не 12. Например, в 10:04:15.250 PM значение 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 PM значение HOUR_OF_DAY равно 22.
См. также:
  • HOUR
  • Значения констант полей

MINUTE

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

SECOND

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

MILLISECOND

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

ZONE_OFFSET

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

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

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

DST_OFFSET

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

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

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

FIELD_COUNT

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

SUNDAY

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

MONDAY

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

TUESDAY

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

WEDNESDAY

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

THURSDAY

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

FRIDAY

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

SATURDAY

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

JANUARY

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

FEBRUARY

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

MARCH

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

APRIL

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

MAY

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

JUNE

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

JULY

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

AUGUST

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

SEPTEMBER

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

OCTOBER

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

NOVEMBER

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

DECEMBER

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

UNDECIMBER

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

AM

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

PM

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

ALL_STYLES

public static final int ALL_STYLES
Спецификатор стиля для getDisplayNames, указывающий наименования во всех стилях, например «январь» и «янв.».
Начиная с версии:
1.6
См. также:
  • SHORT_FORMAT
  • LONG_FORMAT
  • SHORT_STANDALONE
  • LONG_STANDALONE
  • SHORT
  • LONG
  • Значения констант полей

SHORT

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

LONG

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

NARROW_FORMAT

public static final int NARROW_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий узкое наименование для форматирования. Узкие наименования обычно состоят из одного символа, например «П» для понедельника.
Начиная с версии:
1.8
См. также:
  • NARROW_STANDALONE
  • SHORT_FORMAT
  • LONG_FORMAT
  • Значения констант полей

NARROW_STANDALONE

public static final int NARROW_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий узкое самостоятельное наименование. Узкие наименования обычно состоят из одного символа, например «П» для понедельника.
Начиная с версии:
1.8
См. также:
  • NARROW_FORMAT
  • SHORT_STANDALONE
  • LONG_STANDALONE
  • Значения констант полей

SHORT_FORMAT

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

LONG_FORMAT

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

SHORT_STANDALONE

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

LONG_STANDALONE

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

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
Значение true, если значение time действительно. Время становится недействительным при изменении элемента field[].
См. также:
  • time

areFieldsSet

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

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

Calendar

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

Calendar

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

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

getInstance

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

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

Возвращает:
объект Calendar.

getInstance

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

getInstance

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

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

Параметры:
aLocale — локаль для данных о неделе
Возвращает:
объект Calendar.
Вызывает исключение:
NullPointerException — если aLocale равно null

getInstance

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

getAvailableLocales

public static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры. Как минимум возвращаемый массив должен содержать экземпляр Locale, равный Locale.ROOT, и экземпляр 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 (смещение в миллисекундах относительно Epoch).
Возвращает:
объект Date, представляющий значение времени.
См. также:
  • setTime(Date)
  • getTimeInMillis()

setTime

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

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

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

getTimeInMillis

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

setTimeInMillis

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

get

public int get(int field)
Возвращает значение указанного поля календаря. В разрешительном режиме все поля календаря нормализуются. В неразрешительном режиме все поля календаря проверяются, и этот метод выбрасывает исключение, если значение любого поля календаря выходит за допустимый диапазон. Нормализация и проверка выполняются методом complete(); процесс зависит от календарной системы.
Параметры:
field — указанное поле календаря.
Возвращает:
значение указанного поля календаря.
Вызывает исключение:
IllegalArgumentException — если этот Calendar работает в неразрешительном режиме и значения каких-либо полей календаря недопустимы.
См. также:
  • set(int,int)
  • complete()

internalGet

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

set

public void set(int field, int value)
Устанавливает для указанного поля календаря указанное значение. Этот метод не интерпретирует значение независимо от режима разрешительности.
Параметры:
field — указанное поле календаря.
value — значение, которое необходимо установить для указанного поля календаря.
См. также:
  • 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, например 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, например 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()
Устанавливает для всех значений полей календаря и значения времени (смещения в миллисекундах относительно Epoch) этого Calendar состояние «не определено». Это означает, что isSet() будет возвращать false для всех полей календаря, а при вычислении даты и времени поля будут считаться никогда не заданными. Класс реализации Calendar может использовать собственные значения полей по умолчанию для вычислений даты и времени. Например, GregorianCalendar использует 1970 год, если значение поля YEAR не определено.
См. также:
  • clear(int)

clear

public final void clear(int field)
Устанавливает для указанного поля календаря и значения времени (смещения в миллисекундах относительно Epoch) этого 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. Если строковое представление применимо к указанному field календаря, этот метод вызывает get(field), чтобы получить значение field календаря.

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

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

Если строковое представление Calendar field отсутствует, календарь работает в неразрешительном режиме и значения каких-либо полей календаря недопустимы, возвращается null. Если строковое представление Calendar field существует, календарь работает в неразрешительном режиме и значения каких-либо полей календаря недопустимы, будет выброшено IllegalArgumentException.

Параметры:
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().

В отличие от getDisplayName(int, int, Locale), этот метод не выбрасывает IllegalArgumentException, если Calendar работает в неразрешительном режиме и значения каких-либо полей календаря недопустимы. Вместо этого метод возвращает либо null, либо Map.

Параметры:
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 недопустимо
NullPointerException — если locale равно null
С версии:
1.6

complete

protected void complete()
Заполняет все незаданные поля календаря. Сначала вызывается метод computeTime(), если значение времени (смещение в миллисекундах относительно Epoch) еще не было вычислено на основе значений полей календаря. Затем вызывается метод 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 (LDML).

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

Возвращает:
определенный LDML тип календаря или имя класса данного экземпляра Calendar
Начиная с:
1.8
См. также:
  • Расширения Locale
  • 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(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 — количество даты или времени, добавляемое к полю.
Выбрасывает:
IllegalArgumentException — если этот Calendar работает в строгом режиме и какие-либо поля календаря имеют недопустимые значения, либо если field равен ZONE_OFFSET, DST_OFFSET или имеет неизвестное значение.
См. также:
  • 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 может возникнуть конфликт с другими полями, например датой, и их потребуется изменить. Например, циклическое изменение месяца для даты 31.01.96 приведет к дате 29.02.96. При циклическом изменении часа суток или поля Calendar.HOUR_OF_DAY значение часа будет изменяться в диапазоне от 0 до 23, то есть с нулевой базой.

Параметры:
field — поле времени.
up — указывает, следует ли циклически увеличивать или уменьшать значение указанного поля времени. Используйте true для увеличения, иначе — false.
Выбрасывает:
IllegalArgumentException — если этот Calendar работает в строгом режиме и какие-либо поля календаря имеют недопустимые значения, либо если field равен ZONE_OFFSET, DST_OFFSET или имеет неизвестное значение.
См. также:
  • 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.
Выбрасывает:
IllegalArgumentException — если этот Calendar работает в строгом режиме и какие-либо поля календаря имеют недопустимые значения, либо если field равен ZONE_OFFSET, DST_OFFSET или имеет неизвестное значение.
Начиная с:
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 во Франции.
Параметры:
value — заданный первый день недели.
См. также:
  • getFirstDayOfWeek()
  • getMinimalDaysInFirstWeek()

getFirstDayOfWeek

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

setMinimalDaysInFirstWeek

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

getMinimalDaysInFirstWeek

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

isWeekDateSupported

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

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

Возвращает:
true, если этот Calendar поддерживает даты недель; в противном случае — false.
Начиная с:
1.7
См. также:
  • getWeekYear()
  • setWeekDate(int,int,int)
  • getWeeksInWeekYear()

getWeekYear

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

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

Возвращает:
год недели этого Calendar
Выбрасывает:
UnsupportedOperationException — если в этом Calendar не поддерживается нумерация годов недели.
Начиная с:
1.7
См. также:
  • isWeekDateSupported()
  • getFirstDayOfWeek()
  • getMinimalDaysInFirstWeek()

setWeekDate

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

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

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

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

Параметры:
weekYear — год недели
weekOfYear — номер недели, отсчитываемый от weekYear
dayOfWeek — значение дня недели: одна из констант поля DAY_OF_WEEK: SUNDAY, ..., SATURDAY.
Выбрасывает:
IllegalArgumentException — если какой-либо из заданных компонентов даты недопустим или если какое-либо поле календаря не согласуется с заданными компонентами даты в строгом режиме
UnsupportedOperationException — если в этом Calendar не поддерживается нумерация годов недели.
Начиная с:
1.7
См. также:
  • isWeekDateSupported()
  • getFirstDayOfWeek()
  • getMinimalDaysInFirstWeek()

getWeeksInWeekYear

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

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

Возвращает:
количество недель в году недели.
Выбрасывает:
UnsupportedOperationException — если в этом Calendar не поддерживается нумерация годов недели.
Начиная с:
1.7
См. также:
  • WEEK_OF_YEAR
  • isWeekDateSupported()
  • getWeekYear()
  • getActualMaximum(int)

getMinimum

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

getMaximum

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

getGreatestMinimum

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

getLeastMaximum

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

getActualMinimum

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

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

Параметры:
field — поле календаря
Возвращает:
минимальное значение заданного поля календаря для значения времени этого Calendar
Начиная с:
1.2
См. также:
  • getMinimum(int)
  • getMaximum(int)
  • getGreatestMinimum(int)
  • getLeastMaximum(int)
  • getActualMaximum(int)

getActualMaximum

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

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

Параметры:
field — поле календаря
Возвращает:
максимальное значение заданного поля календаря для значения времени этого Calendar
Начиная с:
1.2
См. также:
  • getMinimum(int)
  • getMaximum(int)
  • getGreatestMinimum(int)
  • getLeastMaximum(int)
  • getActualMinimum(int)

clone

public Object clone()
Создает и возвращает копию этого объекта.
Переопределяет:
clone в классе Object
Возвращает:
копию этого объекта.
См. также:
  • Cloneable

toString

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

toInstant

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/util/Calendar.html

Spec-Zone.ru

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