Spec-Zone.ru › OpenJDK 21

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

END_OF_DOCUMENT_MARKER

Пример: См. 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
Текущее время для этого календаря, выраженное в миллисекундах после 00:00:00 GMT 1 января 1970 года.
static final int TUESDAY
Значение поля DAY_OF_WEEK, указывающее на вторник.
static final int UNDECIMBER
Значение поля MONTH, указывающее на тринадцатый месяц года.
static final int WEDNESDAY
Значение поля DAY_OF_WEEK, указывающее на среду.
static final int WEEK_OF_MONTH
Номер поля для get и set , указывающий номер недели в текущем месяце.
static final int WEEK_OF_YEAR
Номер поля для get и set , указывающий номер недели в текущем году.
static final int YEAR
Номер поля для get и set , указывающий год.
static final int ZONE_OFFSET
Номер поля для get и set , указывающий необработанное смещение от GMT в миллисекундах.

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

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

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

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

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

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

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

ERA

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

YEAR

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

MONTH

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

WEEK_OF_YEAR

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

WEEK_OF_MONTH

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

DATE

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

DAY_OF_MONTH

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

DAY_OF_YEAR

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

DAY_OF_WEEK

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

DAY_OF_WEEK_IN_MONTH

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

AM_PM

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

HOUR

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

HOUR_OF_DAY

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

MINUTE

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

ВТОРАЯ

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

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

public static final int MILLISECOND
Номер поля для get и set , указывающий миллисекунду в секунде. Например, в 22: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, обозначающее двенадцатый месяц года в григорианском и юлианском календарях.
См. также:
  • Значения постоянных полей

UNDECIMBER

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

AM

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

PM

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

ALL_STYLES

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

SHORT

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

LONG

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

NARROW_FORMAT

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

NARROW_STANDALONE

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

SHORT_FORMAT

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

LONG_FORMAT

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

SHORT_STANDALONE

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

LONG_STANDALONE

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

fields

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

isSet

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

time

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

isTimeSet

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

areFieldsSet

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

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

Calendar

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

Calendar

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

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

getInstance

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

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

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

getInstance

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

getInstance

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

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

Параметры:
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 - заданная дата.
Исключения:
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)
Устанавливает заданное поле календаря в заданное значение. Значение не интерпретируется этим методом, независимо от режима leniency.
Параметры:
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 до 11). Например, 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 до 11). Например, 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().
Parameters:
year - значение, используемое для установки поля календаря YEAR.
month - значение, используемое для установки поля календаря MONTH. Значение месяца основано на нуле. Например, 0 для января.
date - значение, используемое для установки поля календаря DAY_OF_MONTH.
hourOfDay - значение, используемое для установки поля календаря HOUR_OF_DAY.
minute - значение, используемое для установки поля календаря MINUTE.
second - значение, используемое для установки поля календаря SECOND.
See Also:
  • 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 не определено.
See Also:
  • 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), чтобы сбросить значение часа.

Parameters:
field - поле календаря, которое необходимо очистить.
See Also:
  • clear()

isSet

public final boolean isSet(int field)
Определяет, установлено ли значение заданного поля календаря, включая случаи, когда значение было установлено внутренними вычислениями полей, вызванными методом get.
Parameters:
field - поле календаря, которое необходимо проверить
Returns:
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.

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

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

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

getDisplayNames

public Map<String,Integer> getDisplayNames(int field, int style, Locale locale)
Возвращает Map, содержащий все имена полей календаря field в заданном style и locale, а также соответствующие значения полей. Например, если этот Calendar является GregorianCalendar, возвращаемый map будет содержать «Янв» к 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:
a 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 в среде выполнения. Доступные типы календарей могут быть использованы для расширений локалей Юникода. Возвращаемый 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 - количество добавляемого или вычитаемого времени к полю.
Исключения:
IllegalArgumentException - если этот Calendar не гибкий и любое из полей календаря имеет некорректные значения или если field является ZONE_OFFSET, DST_OFFSET, или неизвестным.
См. также:
  • roll(int,int)
  • set(int,int)

roll

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

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

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

roll

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

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

Параметры:
field - поле календаря.
amount - числовое значение, добавляемое к полю календаря.
Исключения:
IllegalArgumentException - если этот Calendar не гибкий и любое из полей календаря имеет некорректные значения или если field является ZONE_OFFSET, DST_OFFSET, или неизвестным.
С:
1.2
См. также:
  • 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)
Указывает, должен ли интерпретатор даты/времени быть лояльным. При лояльной интерпретации дата, например, "February 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.

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

setWeekDate

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

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

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

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

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

getWeeksInWeekYear

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

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

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

getMinimum

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

getMaximum

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

Наибольшее минимальное значение

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

Наименьшее максимальное значение

public abstract int getLeastMaximum(int field)
Возвращает наименьшее максимальное значение для данного календарного поля этого Calendar экземпляра. Наименьшее максимальное значение определяется как наименьшее значение, возвращаемое методом getActualMaximum(int) для любого возможного значения времени. Наименьшее максимальное значение зависит от параметров, специфичных для системы календаря экземпляра. Например, для системы календаря Григорианского календаря возвращается значение 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, 2023, 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/21/docs/api/java.base/java/util/Calendar.html

Spec-Zone.ru

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