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

Поля

Модификатор и тип Поле Описание
static int ALL_STYLES

Спецификатор стиля для getDisplayNames, указывающий имена во всех стилях, такие как «Январь» и «Янв».

static int AM

Значение поля AM_PM, указывающее период дня с полуночи до полудня.

static int AM_PM

Номер поля для get и set , указывающий, предшествует ли HOUR или следует за полуднем.

static int APRIL

Значение поля MONTH, обозначающее четвертый месяц года в григорианском и юлианском календарях.

protected boolean areFieldsSet

Истинно, если fields[] синхронизированы с текущим временем.

static int AUGUST

Значение поля MONTH, обозначающее восьмой месяц года в григорианском и юлианском календарях.

static int DATE

Номер поля для get и set , указывающий день месяца.

static int DAY_OF_MONTH

Номер поля для get и set , указывающий день месяца.

static int DAY_OF_WEEK

Номер поля для get и set , указывающий день недели.

static int DAY_OF_WEEK_IN_MONTH

Номер поля для get и set , указывающий порядковый номер дня недели в текущем месяце.

static int DAY_OF_YEAR

Номер поля для get и set , указывающий номер дня в текущем году.

static int DECEMBER

Значение поля MONTH, обозначающее двенадцатый месяц года в григорианском и юлианском календарях.

static int DST_OFFSET

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

static int ERA

Номер поля для get и set , указывающий эру, например, AD или BC в юлианском календаре.

static int FEBRUARY

Значение поля MONTH, обозначающее второй месяц года в григорианском и юлианском календарях.

static int FIELD_COUNT

Количество различных полей, распознаваемых get и set.

protected int[] fields

Значения полей календаря для текущего установленного времени для этого календаря.

static int FRIDAY

Значение поля DAY_OF_WEEK, обозначающее пятницу.

static int HOUR

Номер поля для get и set , указывающий час утра или дня.

static int HOUR_OF_DAY

Номер поля для get и set , указывающий час дня.

protected boolean[] isSet

Флаги, указывающие, установлено ли указанное поле календаря для календаря.

protected boolean isTimeSet

Истинно, если значение time является допустимым.

static int JANUARY

Значение поля MONTH, обозначающее первый месяц года в григорианском и юлианском календарях.

static int JULY

Значение поля MONTH, обозначающее седьмой месяц года в григорианском и юлианском календарях.

static int JUNE

Значение поля MONTH, обозначающее шестой месяц года в григорианском и юлианском календарях.

static int LONG

Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный LONG_FORMAT.

static int LONG_FORMAT

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий длинное имя, используемое для форматирования.

static int LONG_STANDALONE

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий длинное имя, используемое независимо, например, имя месяца как заголовки календаря.

static int MARCH

Значение поля MONTH, обозначающее третий месяц года в григорианском и юлианском календарях.

static int MAY

Значение поля MONTH, обозначающее пятый месяц года в григорианском и юлианском календарях.

static int MILLISECOND

Номер поля для get и set , указывающий миллисекунду в секунде.

static int MINUTE

Номер поля для get и set , указывающий минуту в часе.

static int MONDAY

Значение поля DAY_OF_WEEK, обозначающее понедельник.

static int MONTH

Номер поля для get и set , указывающий месяц.

static int NARROW_FORMAT

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий узкое имя, используемое для форматирования.

static int NARROW_STANDALONE

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий узкое имя, используемое независимо.

static int NOVEMBER

Значение поля MONTH, обозначающее одиннадцатый месяц года в григорианском и юлианском календарях.

static int OCTOBER

Значение поля MONTH, обозначающее десятый месяц года в григорианском и юлианском календарях.

static int PM

Значение поля AM_PM, обозначающее период дня с полудня до полуночи.

static int SATURDAY

Значение поля DAY_OF_WEEK, обозначающее субботу.

static int SECOND

Номер поля для get и set , указывающий секунду в минуте.

static int SEPTEMBER

Значение поля MONTH, обозначающее девятый месяц года в григорианском и юлианском календарях.

static int SHORT

Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный SHORT_FORMAT.

static int SHORT_FORMAT

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий короткое имя, используемое для форматирования.

static int SHORT_STANDALONE

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий короткое имя, используемое независимо, например, сокращение месяца как заголовки календаря.

static int SUNDAY

Значение поля DAY_OF_WEEK, обозначающее воскресенье.

static int THURSDAY

Значение поля DAY_OF_WEEK, обозначающее четверг.

protected long time

Текущее время этого календаря, выраженное в миллисекундах после 00:00:00 1 января 1970 года по Гринвичу.

static int TUESDAY

Значение поля DAY_OF_WEEK, обозначающее вторник.

static int UNDECIMBER

Значение поля MONTH, обозначающее тринадцатый месяц года.

static int WEDNESDAY

Значение поля DAY_OF_WEEK, обозначающее среду.

static int WEEK_OF_MONTH

Номер поля для get и set, обозначающий номер недели в текущем месяце.

static int WEEK_OF_YEAR

Номер поля для get и set , обозначающий номер недели в текущем году.

static int YEAR

Номер поля для get и set , обозначающий год.

static int ZONE_OFFSET

Номер поля для get и set , обозначающий сдвиг от Гринвича в миллисекундах.

Конструкторы

Модификатор Конструктор Описание
protected Calendar()

Создаёт календарь с часовым поясом по умолчанию и языковым стандартом FORMAT по умолчанию.

protected Calendar​(TimeZone zone, Locale aLocale)

Создаёт календарь с заданным часовым поясом и языковым стандартом.

Методы

Модификатор и тип Метод Описание
abstract void add​(int field, int amount)

Добавляет или вычитает указанное количество времени к заданному полю календаря, в соответствии с правилами календаря.

boolean after​(Object when)

Возвращает, представляет ли этот Calendar время после времени, представленного указанным Object.

boolean before​(Object when)

Возвращает, представляет ли этот Calendar время до времени, представленного указанным Object.

void clear()

Устанавливает все значения полей календаря и значение времени (смещение в миллисекундах от эпохи) этого Calendar в неопределенное значение.

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.

Date getTime()

Возвращает объект Date, представляющий значение времени этого Calendar (смещение в миллисекундах от эпохи).

long getTimeInMillis()

Возвращает значение времени календаря в миллисекундах.

TimeZone getTimeZone()

Возвращает часовой пояс.

int getWeeksInWeekYear()

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

int getWeekYear()

Возвращает год недели, представленный этим Calendar.

int hashCode()

Возвращает хэш-код для этого календаря.

protected int internalGet​(int field)

Возвращает значение заданного поля календаря.

boolean isLenient()

Указывает, должна ли интерпретация даты/времени быть гибкой.

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)

Устанавливает заданное поле календаря на заданное значение.

void set​(int year, int month, int date)

Устанавливает значения для полей календаря YEAR, MONTH, и DAY_OF_MONTH.

void set​(int year, int month, int date, int hourOfDay, int minute)

Устанавливает значения для полей календаря YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, и MINUTE.

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.

void setTime​(Date date)

Устанавливает время этого календаря с заданным Date.

void setTimeInMillis​(long millis)

Устанавливает текущее время календаря из заданного длинного значения.

void setTimeZone​(TimeZone value)

Устанавливает часовой пояс с заданным значением часового пояса.

void setWeekDate​(int weekYear, int weekOfYear, int dayOfWeek)

Устанавливает дату этого Calendar с заданными спецификаторами даты — годом недели, номером недели и днем недели.

Instant toInstant()

Преобразует этот объект в Instant.

String toString()

Возвращает строковое представление этого календаря.

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

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

Поля

ERA

public static final int ERA

Номер поля для get и set, указывающий на эру, например, н.э. или до н.э. в юлианском календаре. Это значение, специфичное для календаря; см. документацию подкласса.

См. также:
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.

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

SECOND

public static final int SECOND

Номер поля для get и set указывающий на секунду в минуте. Например, в 10:04:15.250 вечера SECOND равен 15.

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

MILLISECOND

public static final int MILLISECOND

Номер поля для get и set указывающий на миллисекунду в секунде. Например, в 10:04:15.250 вечера 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.

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

ВОСКРЕСЕНЬЕ

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, обозначающего двенадцатый месяц года в григорианском и юлианском календарях.

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

ТРИНАДЦАТЫЙ МЕСЯЦ

public static final int UNDECIMBER

Значение поля MONTH, обозначающего тринадцатый месяц года. Хотя GregorianCalendar не использует это значение, лунные календари используют его.

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

ДЕНЬ

public static final int AM

Значение поля AM_PM, обозначающее период дня от полуночи до полудня.

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

ВЕЧЕР

public static final int PM

Значение поля AM_PM, обозначающее период дня от полудня до полуночи.

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

ВСЕ_СТИЛИ

public static final int ALL_STYLES

Спецификатор стиля для getDisplayNames, обозначающий имена во всех стилях, таких как «Январь» и «Янв».

С версии:
1.6
См. также:
SHORT_FORMAT, LONG_FORMAT, SHORT_STANDALONE, LONG_STANDALONE, SHORT, LONG, Значения константных полей

КОРОТКО

public static final int SHORT

Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный SHORT_FORMAT.

С версии:
1.6
См. также:
SHORT_STANDALONE, LONG, Значения константных полей

ДЛИННО

public static final int LONG

Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный LONG_FORMAT.

С версии:
1.6
См. также:
LONG_STANDALONE, SHORT, Значения константных полей

УЗКИЙ_ФОРМАТ

public static final int NARROW_FORMAT

Спецификатор стиля для getDisplayName и getDisplayNames, обозначающий узкое имя, используемое для форматирования. Узкие имена обычно представляют собой строки из одного символа, такие как «П» для понедельника.

С версии:
1.8
См. также:
NARROW_STANDALONE, SHORT_FORMAT, LONG_FORMAT, Значения константных полей

УЗКИЙ_ОТДЕЛЬНО

public static final int NARROW_STANDALONE

Спецификатор стиля для getDisplayName и getDisplayNames, обозначающий узкое имя независимо. Узкие имена обычно представляют собой строки из одного символа, такие как «П» для понедельника.

Since:
1.8
See Also:
NARROW_FORMAT, SHORT_STANDALONE, LONG_STANDALONE, Значения константных полей

SHORT_FORMAT

public static final int SHORT_FORMAT

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на короткое имя, используемое для формата.

Since:
1.8
See Also:
SHORT_STANDALONE, LONG_FORMAT, LONG_STANDALONE, Значения константных полей

LONG_FORMAT

public static final int LONG_FORMAT

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на полное имя, используемое для формата.

Since:
1.8
See Also:
LONG_STANDALONE, SHORT_FORMAT, SHORT_STANDALONE, Значения константных полей

SHORT_STANDALONE

public static final int SHORT_STANDALONE

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на короткое имя, используемое независимо, например, сокращение месяца в качестве заголовков календаря.

Since:
1.8
See Also:
SHORT_FORMAT, LONG_FORMAT, LONG_STANDALONE, Значения константных полей

LONG_STANDALONE

public static final int LONG_STANDALONE

Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на полное имя, используемое независимо, например, полное имя месяца в качестве заголовков календаря.

Since:
1.8
See Also:
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.

See Also:
isTimeSet

isTimeSet

protected boolean isTimeSet

Истинно, если значение time является действительным. Время становится недопустимым при изменении элемента field[].

See Also:
time

areFieldsSet

protected boolean areFieldsSet

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

Конструкторы

Calendar

protected Calendar()

Создаёт календарь с часовым поясом по умолчанию и локалью FORMAT по умолчанию.

See Also:
TimeZone.getDefault()

Calendar

protected Calendar(TimeZone zone,
                   Locale aLocale)

Создаёт календарь с заданным часовым поясом и локалью.

Parameters:
zone - часовой пояс для использования
aLocale - локаль для данных недели

Методы

getInstance

public static Calendar getInstance()

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

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

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

getInstance

public static Calendar getInstance(TimeZone zone)

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

Параметры:
zone - используемый часовой пояс
Возвращает:
календарь.

getInstance

public static Calendar getInstance(Locale aLocale)

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

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

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

getInstance

public static Calendar getInstance(TimeZone zone,
                                   Locale aLocale)

Получает календарь с указанным часовым поясом и локалью. Возвращаемый Calendar основан на текущем времени в заданном часовом поясе с заданной локалью.

Параметры:
zone - используемый часовой пояс
aLocale - локаль для данных о неделе
Возвращает:
календарь.

getAvailableLocales

public static Locale[] getAvailableLocales()

Возвращает массив всех локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры. Возвращаемый массив должен содержать по крайней мере экземпляр 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 - заданная дата.
См. также:
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)

Возвращает значение заданного поля календаря. В режиме «попустительства» все поля календаря нормализуются. В режиме «строгости» все поля календаря проверяются, и этот метод выбрасывает исключение, если какие-либо поля календаря имеют значения вне диапазона. Нормализация и проверка обрабатываются методом 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. Например, 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()

Устанавливает все значения полей календаря и значение времени (смещение в миллисекундах от эпохи) этого 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 будет «Январь» в формате long в английском локали или «Янв» в формате short. Однако строковое представление для поля DAY_OF_MONTH недоступно, и этот метод вернёт null.

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

Параметры:
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, содержащий все имена значений поля календаря в заданном style и locale и их соответствующие значения полей. Например, если этот Calendar — GregorianCalendar, возвращаемый массив будет содержать «Янв» для JANUARY, «Фев» для FEBRUARY и так далее, в формате short в английском локали.

Узкие имена могут не быть уникальными из-за использования одиночных символов, таких как «В» для воскресенья и субботы. В этом случае узкие имена не включаются в возвращаемый 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 во Франции.

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

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

Spec-Zone .ru
спецификации, руководства, описания, API