Spec-Zone.ru › OpenJDK 24

Класс 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. Если указанная локаль содержит расширения "fw" и/или "rg" Unicode extensions, первый день недели будет получен в соответствии с этими расширениями. Если указаны оба расширения "fw" и "rg", значение из расширения "fw" имеет приоритет над неявным значением из расширения "rg". Их также можно указать явно с помощью методов для установки их значений.

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

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

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

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

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

 YEAR + MONTH + DAY_OF_MONTH
 YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
 YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
 YEAR + DAY_OF_YEAR
 YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
 
Для полей времени суток:
 HOUR_OF_DAY
 AM_PM + HOUR
 

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

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

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

Строки формата даты или времени не являются частью определения календаря, так как их необходимо изменять или переопределять пользователем во время выполнения. Используйте 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 final int ALL_STYLES
Спецификатор стиля для getDisplayNames, указывающий имена во всех стилях, такие как "Январь" и "Янв".
static final int AM
Значение поля AM_PM, указывающее период дня с полуночи до перед полуднем.
static final int AM_PM
Номер поля для get и set, указывающий, находится ли HOUR до или после полудня.
static final int APRIL
Значение поля MONTH, указывающее четвёртый месяц года в григорианском и юлианском календарях.
protected boolean areFieldsSet
Истина, если fields[] синхронизированы с текущим временем.
static final int AUGUST
Значение поля MONTH, указывающее восьмой месяц года в григорианском и юлианском календарях.
static final int DATE
Номер поля для get и set, указывающий день месяца.
static final int DAY_OF_MONTH
Номер поля для get и set, указывающий день месяца.
static final int DAY_OF_WEEK
Номер поля для get и set, указывающий день недели.
static final int DAY_OF_WEEK_IN_MONTH
Номер поля для get и set, указывающий порядковый номер дня недели в текущем месяце.
static final int DAY_OF_YEAR
Номер поля для get и set, указывающий номер дня в текущем году.
static final int DECEMBER
Значение поля MONTH, указывающее двенадцатый месяц года в григорианском и юлианском календарях.
static final int DST_OFFSET
Номер поля для get и set, указывающий смещение летнего времени в миллисекундах.
static final int ERA
Номер поля для get и set, указывающий эру, например, н. э. или до н. э. в юлианском календаре.
static final int FEBRUARY
Значение поля MONTH, указывающее второй месяц года в григорианском и юлианском календарях.
static final int FIELD_COUNT
Количество различных полей, распознаваемых get и set.
protected int[] fields
Значения полей календаря для текущего установленного времени в этом календаре.
static final int FRIDAY
Значение поля DAY_OF_WEEK, обозначающее пятницу.
static final int HOUR
Номер поля для get и set, указывающий час утра или дня.
static final int HOUR_OF_DAY
Номер поля для get и set, указывающий час дня.
protected boolean[] isSet
Флаги, которые указывают, установлено ли указанное поле календаря для календаря.
protected boolean isTimeSet
Истина, если значение time является допустимым.
static final int JANUARY
Значение поля MONTH, указывающее первый месяц года в григорианском и юлианском календарях.
static final int JULY
Значение поля MONTH, указывающее седьмой месяц года в григорианском и юлианском календарях.
static final int JUNE
Значение поля MONTH, указывающее шестой месяц года в григорианском и юлианском календарях.
static final int LONG
Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный LONG_FORMAT.
static final int LONG_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий длинное имя, используемое для форматирования.
static final int LONG_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий длинное имя, используемое независимо, например, имя месяца как заголовки календаря.
static final int MARCH
Значение поля MONTH, указывающее третий месяц года в григорианском и юлианском календарях.
static final int MAY
Значение поля MONTH, указывающее пятый месяц года в григорианском и юлианском календарях.
static final int MILLISECOND
Номер поля для get и set, указывающий миллисекунды в секунде.
static final int MINUTE
Номер поля для get и set, указывающий минуты в часе.
static final int MONDAY
Значение поля DAY_OF_WEEK, обозначающее понедельник.
static final int MONTH
Номер поля для get и set, указывающий месяц.
static final int NARROW_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий узкое имя, используемое для форматирования.
static final int NARROW_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий узкое имя, используемое независимо.
static final int NOVEMBER
Значение поля MONTH, указывающее одиннадцатый месяц года в григорианском и юлианском календарях.
static final int OCTOBER
Значение поля MONTH, указывающее десятый месяц года в григорианском и юлианском календарях.
static final int PM
Значение поля AM_PM, указывающее период дня с полудня до перед полуночью.
static final int SATURDAY
Значение поля DAY_OF_WEEK, обозначающее субботу.
static final int SECOND
Номер поля для get и set, указывающий секунды в минуте.
static final int SEPTEMBER
Значение поля MONTH, указывающее девятый месяц года в григорианском и юлианском календарях.
static final int SHORT
Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный SHORT_FORMAT.
static final int SHORT_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий короткое имя, используемое для форматирования.
END_OF_DOCUMENT_MARKER
static final int SHORT_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий короткое имя, используемое независимо, например, сокращение месяца в качестве заголовков календаря.
static final int SUNDAY
Значение поля DAY_OF_WEEK, указывающее на воскресенье.
static final int THURSDAY
Значение поля DAY_OF_WEEK, указывающее на четверг.
protected long time
Текущее время этого календаря, выраженное в миллисекундах после 1 января 1970 года, 0: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()
Устанавливает все значения полей календаря и значение времени (смещение в миллисекундах от Epoch) этого Calendar неопределено.
final void clear(int field)
Устанавливает значение заданного поля календаря и значение времени (смещение в миллисекундах от Epoch) этого Calendar неопределено.
Object clone()
Создает и возвращает копию этого объекта.
int compareTo(Calendar anotherCalendar)
Сравнивает значения времени (смещения в миллисекундах от Epoch), представленные двумя объектами 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 (смещение в миллисекундах от Epoch).
long getTimeInMillis()
Возвращает значение времени этого календаря в миллисекундах.
TimeZone getTimeZone()
Получает часовой пояс.
int getWeeksInWeekYear()
Возвращает количество недель в годе, представленном этим Calendar.
int getWeekYear()
Возвращает год, представленный этим Calendar.
int hashCode()
Возвращает хэш-код для этого календаря.
protected final int internalGet(int field)
Возвращает значение заданного поля календаря.
boolean isLenient()
Указывает, должно ли интерпретироваться время/дата смягченно.
final boolean isSet(int field)
Определяет, установлено ли значение для данного поля календаря, включая случаи, когда значение было установлено расчетами внутренних полей, вызванными вызовом метода get.
boolean isWeekDateSupported()
Возвращает, поддерживает ли этот Calendar недельные даты.
abstract void roll(int field, boolean up)
Добавляет или вычитает (вверх/вниз) одну единицу времени в указанном поле времени, не изменяя более крупные поля.
void roll(int field, int amount)
Добавляет указанное (со знаком) количество к указанному полю календаря, не изменяя более крупные поля.
void set(int field, int value)
Устанавливает указанное поле календаря на указанное значение.
final void set(int year, int month, int date)
Устанавливает значения для полей календаря YEAR, MONTH и DAY_OF_MONTH.
final void set(int year, int month, int date, int hourOfDay, int minute)
Устанавливает значения для полей календаря YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY и MINUTE.
final void set(int year, int month, int date, int hourOfDay, int minute, int second)
Устанавливает значения для полей YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE и SECOND.
void setFirstDayOfWeek(int value)
Устанавливает, какой день недели является первым; например, SUNDAY в США, MONDAY во Франции.
void setLenient(boolean lenient)
Указывает, должно ли интерпретироваться время/дата смягченно.
void setMinimalDaysInFirstWeek(int value)
Устанавливает, сколько минимальных дней требуется в первой неделе года; например, если первая неделя определяется как неделя, содержащая первый день первого месяца года, вызовите этот метод со значением 1.
final void setTime(Date date)
Устанавливает время этого календаря с помощью данного Date.
void setTimeInMillis(long millis)
Устанавливает текущее время этого календаря из данного значения long.
void setTimeZone(TimeZone value)
Устанавливает часовой пояс с помощью данного значения часового пояса.
void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
Устанавливает дату этого Calendar с заданными спецификаторами даты — годом недели, неделей года и днем недели.
final Instant toInstant()
Преобразует этот объект в Instant.
String toString()
Возвращает строковое представление этого календаря.

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

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

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

ЭРА

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

ГОД

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

МЕСЯЦ

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

НЕДЕЛЯ_ГОДА

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

НЕДЕЛЯ_МЕСЯЦА

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

ДАТА

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

ДЕНЬ_МЕСЯЦА

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

ДЕНЬ_ГОДА

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

ДЕНЬ_НЕДЕЛИ

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

ДЕНЬ_НЕДЕЛИ_В_МЕСЯЦЕ

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
  • Значения константных полей

ЧАС

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

ЧАС_СУТОК

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

МИНУТА

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

СЕКУНДА

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

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

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

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

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

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

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

СМЕЩЕНИЕ_ЛЕТНЕГО_ВРЕМЕНИ

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

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

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

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

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

ВОСКРЕСЕНЬЕ

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

ПОНЕДЕЛЬНИК

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

ВТОРНИК

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

СРЕДА

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

ЧЕТВЕРГ

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

ПЯТНИЦА

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

СУББОТА

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

ЯНВАРЬ

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

ФЕВРАЛЬ

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

МАРТ

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

АПРЕЛЬ

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

МАЙ

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

ИЮНЬ

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

ИЮЛЬ

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

АВГУСТ

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

СЕНТЯБРЬ

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

ОКТЯБРЬ

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

НОЯБРЬ

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

ДЕКАБРЬ

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

ДВЕНАДЦАТЫЙ

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

AM

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

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, указывающий узкое имя независимо. Узкие имена обычно представляют собой строки из одного символа, такие как "П" для понедельника.
С:
1.8
См. также:
  • NARROW_FORMAT
  • SHORT_STANDALONE
  • LONG_STANDALONE
  • Значения константных полей

КОРОТКО_ФОРМАТ

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

ДЛИННО_ФОРМАТ

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

КОРОТКО_ОТДЕЛЬНО

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

ДЛИННО_ОТДЕЛЬНО

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

Поля

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 по Гринвичу.
См. также:
  • isTimeSet

isTimeSet

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

areFieldsSet

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

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

Calendar

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

Calendar

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

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

getInstance

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

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

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

getInstance

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

getInstance

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

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

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

getInstance

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

getAvailableLocales

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

setTime

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

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

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

getTimeInMillis

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

setTimeInMillis

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

get

public int get(int field)
Возвращает значение заданного поля календаря. В режиме lenient все поля календаря нормализуются. В режиме non-lenient все поля календаря проверяются, и этот метод выбрасывает исключение, если какие-либо поля календаря имеют значения вне диапазона. Нормализация и проверка выполняются методом complete(), и этот процесс зависит от системы календаря.
Параметры:
field - заданное поле календаря.
Возвращает:
значение для данного поля календаря.
Исключения:
IllegalArgumentException - если этот Calendar не в режиме lenient и какие-либо поля календаря имеют недопустимые значения.
См. также:
  • 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 для января.
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 для января.
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 для января.
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 будет "Январь" в длинном стиле в английском локали или "Янв" в коротком стиле. Однако строкового представления для поля 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, возвращаемая карта будет содержать "Янв" для JANUARY, "Фев" для FEBRUARY и так далее в стиле краткого формата в локали английского языка.

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

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

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

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

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

complete

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

getAvailableCalendarTypes

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

getCalendarType

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

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

Returns:
тип календаря, определённый LDML, или имя класса этого экземпляра Calendar
Since:
1.8
See Also:
  • Расширения локали
  • 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 для сравнения только значений времени.

Overrides:
equals в классе Object
Parameters:
obj - объект для сравнения.
Returns:
true, если этот объект равен obj; false в противном случае.
See Also:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Возвращает код хэша для этого календаря.
Overrides:
hashCode в классе Object
Returns:
значение кода хэша для этого объекта.
Since:
1.2
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

before

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

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

after

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

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

compareTo

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

add

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

add(Calendar.DAY_OF_MONTH, -5).

Parameters:
field - поле календаря.
amount - количество добавляемого к полю значения даты или времени.
Throws:
IllegalArgumentException - если этот объект Calendar не является мягким и какие-либо из полей календаря имеют некорректные значения, или если поле field имеет значение ZONE_OFFSET, DST_OFFSET или неизвестно.
See Also:
  • 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, что является нулевым.

Parameters:
field - поле времени.
up - указывает, будет ли значение указанного поля времени прокручиваться вверх или вниз. Используйте true, если прокручивается вверх, false в противном случае.
Throws:
IllegalArgumentException - если этот объект Calendar не является мягким и какие-либо из полей календаря имеют некорректные значения, или если поле field имеет значение ZONE_OFFSET, DST_OFFSET или неизвестно.
See Also:
  • add(int,int)
  • set(int,int)

roll

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

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

Parameters:
field - поле календаря.
amount - знаковое количество, которое нужно добавить к полю field календаря.
Throws:
IllegalArgumentException - если этот объект Calendar не является мягким и какие-либо из полей календаря имеют некорректные значения, или если поле field имеет значение ZONE_OFFSET, DST_OFFSET или неизвестно.
Since:
1.2
See Also:
  • roll(int,boolean)
  • add(int,int)
  • set(int,int)

setTimeZone

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

getTimeZone

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

setLenient

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

isLenient

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

setFirstDayOfWeek

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

getFirstDayOfWeek

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

setMinimalDaysInFirstWeek

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

getMinimalDaysInFirstWeek

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

isWeekDateSupported

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

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

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

getWeekYear

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

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

Возвращает:
номер года по неделям этого 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.
Overrides:
toString в классе Object
Возвращает:
строковое представление этого календаря.

toInstant

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

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

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/Calendar.html

Spec-Zone.ru

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