Класс Calendar
- java.lang.Object
-
- java.util.Calendar
- Все реализованные интерфейсы:
-
Serializable,Cloneable,Comparable<Calendar>
- Прямые известные подклассы:
GregorianCalendar
public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
Класс Calendar — абстрактный класс, предоставляющий методы для преобразования между конкретным моментом времени и набором calendar fields, таких как YEAR, MONTH, DAY_OF_MONTH, HOUR, и так далее, а также для манипулирования полями календаря, например, для получения даты следующей недели. Момент времени можно представить в виде значения в миллисекундах, являющегося смещением от эпохи, 1 января 1970 года 00:00:00.000 GMT (григорианский календарь).
Класс также предоставляет дополнительные поля и методы для реализации конкретной системы календаря вне пакета. Эти поля и методы определены как protected.
Подобно другим классам, зависящим от локали, Calendar предоставляет классный метод getInstance, для получения полезного объекта этого типа. Метод getInstance класса Calendar возвращает объект Calendar, поля календаря которого инициализированы текущей датой и временем:
Calendar rightNow = Calendar.getInstance();
Объект Calendar может генерировать все значения полей календаря, необходимые для реализации форматирования даты и времени для определенного языка и стиля календаря (например, японско-григорианский, японско-традиционный). Calendar определяет диапазон значений, возвращаемых определёнными полями календаря, а также их значение. Например, первый месяц системы календаря имеет значение MONTH ==
JANUARY для всех календарей. Другие значения определяются конкретным подклассом, например ERA. Подробности см. в документации по отдельным полям и документации подкласса.
Получение и установка значений полей календаря
Значения полей календаря можно установить, вызвав методы set. Любые значения полей, установленные в Calendar, не будут интерпретированы до тех пор, пока он не потребуется рассчитать своё значение времени (миллисекунды от эпохи) или значения полей календаря. Вызов get, getTimeInMillis, getTime, add и roll подразумевает такой расчёт.
Поведение
Calendar имеет два режима интерпретации полей календаря: мягкий и жёсткий. Когда Calendar находится в мягком режиме, он принимает более широкий диапазон значений полей календаря, чем генерирует. Когда Calendar пересчитывает значения полей календаря для возврата методом get(), все поля календаря нормализуются. Например, мягкий GregorianCalendar интерпретирует MONTH == JANUARY, DAY_OF_MONTH == 32 как 1 февраля.
Когда Calendar находится в жёстком режиме, он выбрасывает исключение, если в его полях календаря есть какие-либо несоответствия. Например, GregorianCalendar всегда генерирует значения DAY_OF_MONTH от 1 до длины месяца. Жёсткий GregorianCalendar выбрасывает исключение при вычислении своего значения времени или значений полей календаря, если установлено какое-либо значение поля, выходящее за пределы диапазона.
Первая неделя
Calendar определяет специфичную для локали семидневную неделю с помощью двух параметров: первого дня недели и минимального количества дней в первой неделе (от 1 до 7). Эти числа берутся из данных ресурсов локали или из самой локали при создании объекта Calendar. Если указанная локали содержит расширения Unicode "fw" и/или "rg", первый день недели будет получен в соответствии с этими расширениями. Если указаны как "fw", так и "rg", значение из расширения "fw" имеет приоритет над неявным значением из расширения "rg". Их также можно указать явно через методы для установки их значений. При установке или получении полей WEEK_OF_MONTH или WEEK_OF_YEAR, Calendar должен определить первую неделю месяца или года в качестве точки отсчёта. Первая неделя месяца или года определяется как самый ранний семидневный период, начинающийся в getFirstDayOfWeek() и содержащий как минимум getMinimalDaysInFirstWeek() дней этого месяца или года. Недели с номерами ..., -1, 0 предшествуют первой неделе; недели с номерами 2, 3,... следуют за ней. Обратите внимание, что нормализованный номер, возвращаемый get(), может отличаться. Например, конкретный подкласс Calendar может обозначить неделю перед неделей 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, и т.д.
Примечание: Существуют некоторые возможные неоднозначности в интерпретации отдельных моментов времени, которые разрешаются следующим образом:
- 23:59 — последняя минута дня, а 00:00 — первая минута следующего дня. Таким образом, 23:59 31 декабря 1999 года < 00:00 1 января 2000 года < 00:01 1 января 2000 года.
- Хотя исторически это неточно, полночь также относится к "am", а полдень — к "pm", поэтому в один и тот же день 12:00 am (полночь) < 12:01 am, и 12:00 pm (полдень) < 12:01 pm
Форматы строк даты или времени не являются частью определения календаря, так как их можно изменять или переопределять пользователем во время выполнения. Используйте DateFormat для форматирования дат.
Манипулирование полями
Поля календаря можно изменить с помощью трёх методов:set(), add(), и roll(). set(f, value) изменяет поле календаря f на value. Кроме того, он устанавливает внутреннюю переменную, чтобы указать, что поле календаря f было изменено. Хотя поле календаря f изменяется немедленно, значение времени календаря в миллисекундах пересчитывается только при следующем вызове get(), getTime(), getTimeInMillis(), add(), или roll(). Таким образом, многократные вызовы set() не вызывают многократных, нежелательных вычислений. В результате изменения поля календаря с помощью set(), другие поля календаря также могут измениться, в зависимости от поля календаря, значения поля календаря и системы календаря. Кроме того, get(f) не обязательно вернёт value установленное вызовом метода set после пересчёта полей календаря. Конкретика определяется конкретным классом календаря.
Пример: Рассмотрим GregorianCalendar, изначально установленный на 31 августа 1999 года. Вызов set(Calendar.MONTH,
Calendar.SEPTEMBER) устанавливает дату на 31 сентября 1999 года. Это временное внутреннее представление, которое разрешается до 1 октября 1999 года, если затем вызывается getTime(). Однако вызов set(Calendar.DAY_OF_MONTH, 30) до вызова getTime() устанавливает дату на 30 сентября 1999 года, так как пересчёт не происходит после вызова set().
add(f, delta) добавляет delta к полю f. Это эквивалентно вызову set(f,
get(f) + delta) с двумя корректировками:
Правило добавления 1. Значение поля
fпосле вызова минус значение поляfдо вызова равноdelta, с учётом любого переполнения, произошедшего в полеf. Переполнение происходит, когда значение поля превышает свой диапазон, и в результате следующее большее поле увеличивается или уменьшается, а значение поля корректируется обратно в свой диапазон.Правило добавления 2. Если ожидается, что меньшее поле останется неизменным, но это невозможно, потому что изменения в его минимуме или максимуме после изменения поля
fили других ограничений, таких как изменение смещения часового пояса, то его значение корректируется, чтобы быть как можно ближе к его ожидаемому значению. Меньшее поле представляет меньшую единицу времени.HOURявляется меньшим полем, чемDAY_OF_MONTH. Никакой корректировки не производится для меньших полей, которые не ожидаются неизменными. Система календаря определяет, какие поля ожидаются неизменными.
Кроме того, в отличие от set(), add() заставляет немедленно пересчитать миллисекунды календаря и все поля.
Пример: Рассмотрим GregorianCalendar, изначально установленный на 31 августа 1999 года. Вызов add(Calendar.MONTH,
13) устанавливает календарь на 30 сентября 2000 года. Правило добавления 1 устанавливает поле MONTH на сентябрь, так как добавление 13 месяцев к августу даёт сентябрь следующего года. Так как DAY_OF_MONTH не может быть 31 в сентябре в GregorianCalendar, правило добавления 2 устанавливает DAY_OF_MONTH на 30, ближайшее возможное значение. Хотя это меньшее поле, DAY_OF_WEEK не корректируется правилом 2, так как ожидается его изменение при изменении месяца в GregorianCalendar.
roll(f, delta) добавляет delta к полю f без изменения более крупных полей. Это эквивалентно вызову add(f, delta) с следующей корректировкой:
Правило циклического сдвига. Более крупные поля остаются неизменными после вызова. Более крупное поле представляет более крупную единицу времени.
DAY_OF_MONTHявляется более крупным полем, чемHOUR.
Пример: См. GregorianCalendar.roll(int, int).
Модель использования. Для мотивации поведения add() и roll(), рассмотрите компонент пользовательского интерфейса с кнопками инкремента и декремента для месяца, дня и года, а также с базовой GregorianCalendar. Если интерфейс отображает 31 января 1999 года, и пользователь нажимает кнопку инкремента месяца, что должно отображаться? Если базовая реализация использует set(), может отобразиться 3 марта 1999 года. Более правильным результатом будет 28 февраля 1999 года. Кроме того, если пользователь снова нажмёт кнопку инкремента месяца, должно отобразиться 31 марта 1999 года, а не 28 марта 1999 года. Сохраняя исходную дату и используя либо add(), либо roll(), в зависимости от того, должны ли изменяться более крупные поля, пользовательский интерфейс может вести себя так, как большинство пользователей интуитивно ожидают.
- С момента:
- 1.1
- См. также:
-
System.currentTimeMillis(),Date,GregorianCalendar,TimeZone,DateFormat, Формат сериализации
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | Calendar.Builder |
|
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static int | ALL_STYLES | Спецификатор стиля для |
static int | AM | Значение поля |
static int | AM_PM | Номер поля для |
static int | APRIL | Значение поля |
protected boolean | areFieldsSet | Истинно, если |
static int | AUGUST | Значение поля |
static int | DATE | Номер поля для |
static int | DAY_OF_MONTH | Номер поля для |
static int | DAY_OF_WEEK | Номер поля для |
static int | DAY_OF_WEEK_IN_MONTH | Номер поля для |
static int | DAY_OF_YEAR | Номер поля для |
static int | DECEMBER | Значение поля |
static int | DST_OFFSET | Номер поля для |
static int | ERA | Номер поля для |
static int | FEBRUARY | Значение поля |
static int | FIELD_COUNT | Количество различных полей, распознаваемых |
protected int[] | fields | Значения полей календаря для текущего установленного времени для этого календаря. |
static int | FRIDAY | Значение поля |
static int | HOUR | Номер поля для |
static int | HOUR_OF_DAY | Номер поля для |
protected boolean[] | isSet | Флаги, указывающие, установлено ли указанное поле календаря для календаря. |
protected boolean | isTimeSet | Истинно, если значение |
static int | JANUARY | Значение поля |
static int | JULY | Значение поля |
static int | JUNE | Значение поля |
static int | LONG | Спецификатор стиля для |
static int | LONG_FORMAT | Спецификатор стиля для |
static int | LONG_STANDALONE | Спецификатор стиля для |
static int | MARCH | Значение поля |
static int | MAY | Значение поля |
static int | MILLISECOND | Номер поля для |
static int | MINUTE | Номер поля для |
static int | MONDAY | Значение поля |
static int | MONTH | Номер поля для |
static int | NARROW_FORMAT | Спецификатор стиля для |
static int | NARROW_STANDALONE | Спецификатор стиля для |
static int | NOVEMBER | Значение поля |
static int | OCTOBER | Значение поля |
static int | PM | Значение поля |
static int | SATURDAY | Значение поля |
static int | SECOND | Номер поля для |
static int | SEPTEMBER | Значение поля |
static int | SHORT | Спецификатор стиля для |
static int | SHORT_FORMAT | Спецификатор стиля для |
static int | SHORT_STANDALONE | Спецификатор стиля для |
static int | SUNDAY | Значение поля |
|---|---|---|
static int | THURSDAY | Значение поля |
protected long | time | Текущее время этого календаря, выраженное в миллисекундах после 00:00:00 1 января 1970 года по Гринвичу. |
static int | TUESDAY | Значение поля |
static int | UNDECIMBER | Значение поля |
static int | WEDNESDAY | Значение поля |
static int | WEEK_OF_MONTH | Номер поля для |
static int | WEEK_OF_YEAR | Номер поля для |
static int | YEAR | Номер поля для |
static int | ZONE_OFFSET | Номер поля для |
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | Calendar() | Создаёт календарь с часовым поясом по умолчанию и языковым стандартом |
protected | Calendar(TimeZone zone,
Locale aLocale) | Создаёт календарь с заданным часовым поясом и языковым стандартом. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void | add(int field,
int amount) | Добавляет или вычитает указанное количество времени к заданному полю календаря, в соответствии с правилами календаря. |
boolean | after(Object when) | Возвращает, представляет ли этот |
boolean | before(Object when) | Возвращает, представляет ли этот |
void | clear() | Устанавливает все значения полей календаря и значение времени (смещение в миллисекундах от эпохи) этого |
void | clear(int field) | Устанавливает заданное значение поля календаря и значение времени (смещение в миллисекундах от эпохи) этого |
Object | clone() | Создаёт и возвращает копию этого объекта. |
int | compareTo(Calendar anotherCalendar) | Сравнивает значения времени (смещения в миллисекундах от эпохи), представленные двумя |
protected void | complete() | Заполняет все не заданные поля в полях календаря. |
protected abstract void | computeFields() | Преобразует текущее значение времени в миллисекундах |
protected abstract void | computeTime() | Преобразует текущие значения полей календаря в |
boolean | equals(Object obj) | Сравнивает этот |
int | get(int field) | Возвращает значение заданного поля календаря. |
int | getActualMaximum(int field) | Возвращает максимальное значение, которое может иметь заданное поле календаря, учитывая значение времени этого |
int | getActualMinimum(int field) | Возвращает минимальное значение, которое может иметь заданное поле календаря, учитывая значение времени этого |
static Set<String> | getAvailableCalendarTypes() | Возвращает неизменяемый |
static Locale[] | getAvailableLocales() | Возвращает массив всех локалей, для которых методы |
String | getCalendarType() | Возвращает тип календаря этого |
String | getDisplayName(int field,
int style,
Locale locale) | Возвращает строковое представление значения календаря |
Map<String,Integer> | getDisplayNames(int field,
int style,
Locale locale) | Возвращает |
int | getFirstDayOfWeek() | Возвращает, каким является первый день недели; например, |
abstract int | getGreatestMinimum(int field) | Возвращает наибольшее минимальное значение для данного поля календаря этого экземпляра |
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) | Возвращает наименьшее максимальное значение для данного поля календаря этого экземпляра |
abstract int | getMaximum(int field) | Возвращает максимальное значение для данного поля календаря этого экземпляра |
int | getMinimalDaysInFirstWeek() | Возвращает минимальное количество дней, необходимых в первой неделе года; например, если первая неделя определена как та, которая содержит первый день первого месяца года, этот метод возвращает 1. |
abstract int | getMinimum(int field) | Возвращает минимальное значение для данного поля календаря этого экземпляра |
Date | getTime() | Возвращает объект |
long | getTimeInMillis() | Возвращает значение времени календаря в миллисекундах. |
TimeZone | getTimeZone() | Возвращает часовой пояс. |
int | getWeeksInWeekYear() | Возвращает количество недель в году недели, представленного этим |
int | getWeekYear() | Возвращает год недели, представленный этим |
int | hashCode() | Возвращает хэш-код для этого календаря. |
protected int | internalGet(int field) | Возвращает значение заданного поля календаря. |
boolean | isLenient() | Указывает, должна ли интерпретация даты/времени быть гибкой. |
boolean | isSet(int field) | Определяет, имеет ли заданное поле календаря значение, включая случаи, когда значение было установлено вычислениями внутренних полей, вызванными вызовом метода |
boolean | isWeekDateSupported() | Возвращает, поддерживает ли этот |
abstract void | roll(int field,
boolean up) | Добавляет или вычитает (вверх/вниз) одну единицу времени к заданному полю времени без изменения больших полей. |
void | roll(int field,
int amount) | Добавляет указанное (знаковое) количество к указанному полю календаря без изменения больших полей. |
void | set(int field,
int value) | Устанавливает заданное поле календаря на заданное значение. |
void | set(int year,
int month,
int date) | Устанавливает значения для полей календаря |
void | set(int year,
int month,
int date,
int hourOfDay,
int minute) | Устанавливает значения для полей календаря |
void | set(int year,
int month,
int date,
int hourOfDay,
int minute,
int second) | Устанавливает значения для полей |
void | setFirstDayOfWeek(int value) | Устанавливает, каким является первый день недели; например, |
void | setLenient(boolean lenient) | Указывает, должна ли интерпретация даты/времени быть гибкой. |
void | setMinimalDaysInFirstWeek(int value) | Устанавливает минимальное количество дней, необходимых в первой неделе года; например, если первая неделя определяется как та, которая содержит первый день первого месяца года, вызовите этот метод со значением 1. |
void | setTime(Date date) | Устанавливает время этого календаря с заданным |
void | setTimeInMillis(long millis) | Устанавливает текущее время календаря из заданного длинного значения. |
void | setTimeZone(TimeZone value) | Устанавливает часовой пояс с заданным значением часового пояса. |
void | setWeekDate(int weekYear,
int weekOfYear,
int dayOfWeek) | Устанавливает дату этого |
|---|---|---|
Instant | toInstant() | Преобразует этот объект в |
String | toString() | Возвращает строковое представление этого календаря. |
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait Поля
ERA
public static final int ERA
Номер поля для get и set, указывающий на эру, например, н.э. или до н.э. в юлианском календаре. Это значение, специфичное для календаря; см. документацию подкласса.
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 для дней до первой недели года.
WEEK_OF_MONTH
public static final int WEEK_OF_MONTH
Номер поля для get и set, указывающий на номер недели в текущем месяце. Первая неделя месяца, как определено getFirstDayOfWeek() и getMinimalDaysInFirstWeek(), имеет значение 1. Подклассы определяют значение WEEK_OF_MONTH для дней до первой недели месяца.
DATE
public static final int DATE
Номер поля для get и set, указывающий на день месяца. Это синоним для DAY_OF_MONTH. Первый день месяца имеет значение 1.
- См. также:
-
DAY_OF_MONTH, Значения константных полей
DAY_OF_MONTH
public static final int DAY_OF_MONTH
Номер поля для get и set указывающий на день месяца. Это синоним для DATE. Первый день месяца имеет значение 1.
- См. также:
-
DATE, Значения константных полей
DAY_OF_YEAR
public static final int DAY_OF_YEAR
Номер поля для get и set указывающий на номер дня в текущем году. Первый день года имеет значение 1.
- См. также:
- Значения константных полей
DAY_OF_WEEK
public static final int DAY_OF_WEEK
Номер поля для get и set указывающий на день недели. Это поле принимает значения SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, и SATURDAY.
- См. также:
-
SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY, Значения константных полей
DAY_OF_WEEK_IN_MONTH
public static final int DAY_OF_WEEK_IN_MONTH
Номер поля для get и set указывающий на порядковый номер дня недели в текущем месяце. Вместе с полем DAY_OF_WEEK, это поле однозначно определяет день в месяце. В отличие от WEEK_OF_MONTH и WEEK_OF_YEAR, значение этого поля не зависит от getFirstDayOfWeek() или getMinimalDaysInFirstWeek(). DAY_OF_MONTH 1 до 7 всегда соответствуют DAY_OF_WEEK_IN_MONTH
1; 8 до 14 соответствуют DAY_OF_WEEK_IN_MONTH 2, и так далее. DAY_OF_WEEK_IN_MONTH 0 указывает на неделю до DAY_OF_WEEK_IN_MONTH 1. Отрицательные значения учитывают обратный отсчёт от конца месяца, поэтому последняя воскресенье месяца указывается как DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1. Поскольку отрицательные значения отсчитываются назад, они обычно будут выровнены в месяце по-другому, чем положительные значения. Например, если месяц имеет 31 день, DAY_OF_WEEK_IN_MONTH -1 будет перекрывать DAY_OF_WEEK_IN_MONTH 5 и конец 4.
- См. также:
-
DAY_OF_WEEK,WEEK_OF_MONTH, Значения константных полей
AM_PM
public static final int AM_PM
Номер поля для get и set указывающий на то, до или после полудня находится HOUR. Например, в 10:04:15.250 вечера AM_PM равно PM.
- См. также:
-
AM,PM,HOUR, Значения константных полей
HOUR
public static final int HOUR
Номер поля для get и set указывающий на час утра или дня. HOUR используется для 12-часовых часов (0 - 11). Полдень и полночь представляются 0, а не 12. Например, в 10:04:15.250 вечера HOUR равен 10.
- См. также:
-
AM_PM,HOUR_OF_DAY, Значения константных полей
HOUR_OF_DAY
public static final int HOUR_OF_DAY
Номер поля для get и set указывающий на час суток. HOUR_OF_DAY используется для 24-часовых часов. Например, в 10:04:15.250 вечера HOUR_OF_DAY равен 22.
- См. также:
-
HOUR, Значения константных полей
MINUTE
public static final int MINUTE
Номер поля для get и set указывающий на минуту в часе. Например, в 10:04:15.250 вечера MINUTE равен 4.
- См. также:
- Значения константных полей
SECOND
public static final int SECOND
Номер поля для get и set указывающий на секунду в минуте. Например, в 10:04:15.250 вечера SECOND равен 15.
- См. также:
- Значения константных полей
MILLISECOND
public static final int MILLISECOND
Номер поля для get и set указывающий на миллисекунду в секунде. Например, в 10:04:15.250 вечера MILLISECOND равен 250.
- См. также:
- Значения константных полей
ZONE_OFFSET
public static final int ZONE_OFFSET
Номер поля для get и set указывающий на явное смещение от GMT в миллисекундах.
Это поле отражает правильное значение смещения от GMT часового пояса данного Calendar если подкласс реализации TimeZone поддерживает исторические изменения смещения от GMT.
- См. также:
- Значения константных полей
DST_OFFSET
public static final int DST_OFFSET
Номер поля для get и set указывающий на смещение летнего времени в миллисекундах.
Это поле отражает правильное значение смещения летнего времени часового пояса данного Calendar если подкласс реализации TimeZone поддерживает исторические изменения расписания летнего времени.
- См. также:
- Значения константных полей
FIELD_COUNT
public static final int FIELD_COUNT
Количество различных полей, распознаваемых get и set. Номера полей варьируются от 0..FIELD_COUNT-1.
- См. также:
- Значения константных полей
ВОСКРЕСЕНЬЕ
public static final int SUNDAY
Значение поля DAY_OF_WEEK, обозначающего воскресенье.
- См. также:
- Значения константных полей
ПОНЕДЕЛЬНИК
public static final int MONDAY
Значение поля DAY_OF_WEEK, обозначающего понедельник.
- См. также:
- Значения константных полей
ВТОРНИК
public static final int TUESDAY
Значение поля DAY_OF_WEEK, обозначающего вторник.
- См. также:
- Значения константных полей
СРЕДА
public static final int WEDNESDAY
Значение поля DAY_OF_WEEK, обозначающего среду.
- См. также:
- Значения константных полей
ЧЕТВЕРГ
public static final int THURSDAY
Значение поля DAY_OF_WEEK, обозначающего четверг.
- См. также:
- Значения константных полей
ПЯТНИЦА
public static final int FRIDAY
Значение поля DAY_OF_WEEK, обозначающего пятницу.
- См. также:
- Значения константных полей
СУББОТА
public static final int SATURDAY
Значение поля DAY_OF_WEEK, обозначающего субботу.
- См. также:
- Значения константных полей
ЯНВАРЬ
public static final int JANUARY
Значение поля MONTH, обозначающего первый месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
ФЕВРАЛЬ
public static final int FEBRUARY
Значение поля MONTH, обозначающего второй месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
МАРТ
public static final int MARCH
Значение поля MONTH, обозначающего третий месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
АПРЕЛЬ
public static final int APRIL
Значение поля MONTH, обозначающего четвёртый месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
МАЙ
public static final int MAY
Значение поля MONTH, обозначающего пятый месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
ИЮНЬ
public static final int JUNE
Значение поля MONTH, обозначающего шестой месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
ИЮЛЬ
public static final int JULY
Значение поля MONTH, обозначающего седьмой месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
АВГУСТ
public static final int AUGUST
Значение поля MONTH, обозначающего восьмой месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
СЕНТЯБРЬ
public static final int SEPTEMBER
Значение поля MONTH, обозначающего девятый месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
ОКТЯБРЬ
public static final int OCTOBER
Значение поля MONTH, обозначающего десятый месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
НОЯБРЬ
public static final int NOVEMBER
Значение поля MONTH, обозначающего одиннадцатый месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
ДЕКАБРЬ
public static final int DECEMBER
Значение поля MONTH, обозначающего двенадцатый месяц года в григорианском и юлианском календарях.
- См. также:
- Значения константных полей
ТРИНАДЦАТЫЙ МЕСЯЦ
public static final int UNDECIMBER
Значение поля MONTH, обозначающего тринадцатый месяц года. Хотя GregorianCalendar не использует это значение, лунные календари используют его.
- См. также:
- Значения константных полей
ДЕНЬ
public static final int AM
Значение поля AM_PM, обозначающее период дня от полуночи до полудня.
- См. также:
- Значения константных полей
ВЕЧЕР
public static final int PM
Значение поля AM_PM, обозначающее период дня от полудня до полуночи.
- См. также:
- Значения константных полей
ВСЕ_СТИЛИ
public static final int ALL_STYLES
Спецификатор стиля для getDisplayNames, обозначающий имена во всех стилях, таких как «Январь» и «Янв».
- С версии:
- 1.6
- См. также:
-
SHORT_FORMAT,LONG_FORMAT,SHORT_STANDALONE,LONG_STANDALONE,SHORT,LONG, Значения константных полей
КОРОТКО
public static final int SHORT
Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный SHORT_FORMAT.
- С версии:
- 1.6
- См. также:
-
SHORT_STANDALONE,LONG, Значения константных полей
ДЛИННО
public static final int LONG
Спецификатор стиля для getDisplayName и getDisplayNames, эквивалентный LONG_FORMAT.
- С версии:
- 1.6
- См. также:
-
LONG_STANDALONE,SHORT, Значения константных полей
УЗКИЙ_ФОРМАТ
public static final int NARROW_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, обозначающий узкое имя, используемое для форматирования. Узкие имена обычно представляют собой строки из одного символа, такие как «П» для понедельника.
- С версии:
- 1.8
- См. также:
-
NARROW_STANDALONE,SHORT_FORMAT,LONG_FORMAT, Значения константных полей
УЗКИЙ_ОТДЕЛЬНО
public static final int NARROW_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, обозначающий узкое имя независимо. Узкие имена обычно представляют собой строки из одного символа, такие как «П» для понедельника.
- Since:
- 1.8
- See Also:
-
NARROW_FORMAT,SHORT_STANDALONE,LONG_STANDALONE, Значения константных полей
SHORT_FORMAT
public static final int SHORT_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на короткое имя, используемое для формата.
- Since:
- 1.8
- See Also:
-
SHORT_STANDALONE,LONG_FORMAT,LONG_STANDALONE, Значения константных полей
LONG_FORMAT
public static final int LONG_FORMAT
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на полное имя, используемое для формата.
- Since:
- 1.8
- See Also:
-
LONG_STANDALONE,SHORT_FORMAT,SHORT_STANDALONE, Значения константных полей
SHORT_STANDALONE
public static final int SHORT_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на короткое имя, используемое независимо, например, сокращение месяца в качестве заголовков календаря.
- Since:
- 1.8
- See Also:
-
SHORT_FORMAT,LONG_FORMAT,LONG_STANDALONE, Значения константных полей
LONG_STANDALONE
public static final int LONG_STANDALONE
Спецификатор стиля для getDisplayName и getDisplayNames, указывающий на полное имя, используемое независимо, например, полное имя месяца в качестве заголовков календаря.
- Since:
- 1.8
- See Also:
-
LONG_FORMAT,SHORT_FORMAT,SHORT_STANDALONE, Значения константных полей
fields
protected int[] fields
Значения полей календаря для текущего установленного времени этого календаря. Это массив из FIELD_COUNT целых чисел со значениями индексов ERA по DST_OFFSET.
isSet
protected boolean[] isSet
Флаги, указывающие, установлено ли заданное поле календаря для календаря. Новый объект не имеет установленных полей. После первого вызова метода, который генерирует поля, они остаются установленными после этого. Это массив из FIELD_COUNT булевых значений со значениями индексов ERA по DST_OFFSET.
time
protected long time
Текущее установленное время для этого календаря, выраженное в миллисекундах после 1 января 1970 года, 0:00:00 GMT.
- See Also:
isTimeSet
isTimeSet
protected boolean isTimeSet
Истинно, если значение time является действительным. Время становится недопустимым при изменении элемента field[].
- See Also:
time
areFieldsSet
protected boolean areFieldsSet
Истинно, если fields[] синхронизированы с текущим установленным временем. Если ложно, то следующая попытка получить значение поля заставит пересчитать все поля из текущего значения time.
Конструкторы
Calendar
protected Calendar()
Создаёт календарь с часовым поясом по умолчанию и локалью FORMAT по умолчанию.
- See Also:
TimeZone.getDefault()
Calendar
protected Calendar(TimeZone zone,
Locale aLocale) Создаёт календарь с заданным часовым поясом и локалью.
- Parameters:
-
zone- часовой пояс для использования -
aLocale- локаль для данных недели
Методы
getInstance
public static Calendar getInstance()
Получает календарь, используя по умолчанию часовой пояс и локаль. Возвращаемый Calendar основан на текущем времени в часовом поясе по умолчанию с локалью по умолчанию FORMAT.
Если локаль содержит часовой пояс с расширением «tz» Unicode extension, используется этот часовой пояс.
- Возвращает:
- календарь.
getInstance
public static Calendar getInstance(TimeZone zone)
Получает календарь, используя указанный часовой пояс и локаль по умолчанию. Возвращаемый Calendar основан на текущем времени в заданном часовом поясе с локалью по умолчанию FORMAT.
- Параметры:
-
zone- используемый часовой пояс - Возвращает:
- календарь.
getInstance
public static Calendar getInstance(Locale aLocale)
Получает календарь, используя по умолчанию часовой пояс и указанную локаль. Возвращаемый Calendar основан на текущем времени в часовом поясе по умолчанию с заданной локалью.
Если локаль содержит часовой пояс с расширением «tz» Unicode extension, используется этот часовой пояс.
- Параметры:
-
aLocale- локаль для данных о неделе - Возвращает:
- календарь.
getInstance
public static Calendar getInstance(TimeZone zone,
Locale aLocale) Получает календарь с указанным часовым поясом и локалью. Возвращаемый Calendar основан на текущем времени в заданном часовом поясе с заданной локалью.
- Параметры:
-
zone- используемый часовой пояс -
aLocale- локаль для данных о неделе - Возвращает:
- календарь.
getAvailableLocales
public static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры. Возвращаемый массив должен содержать по крайней мере экземпляр Locale равный Locale.US.
- Возвращает:
- Массив локалей, для которых доступны локализованные
Calendarэкземпляры.
computeTime
protected abstract void computeTime()
Преобразует текущие значения полей календаря в fields[] в значение времени в миллисекундах time.
- См. также:
-
complete(),computeFields()
computeFields
protected abstract void computeFields()
Преобразует текущее значение времени в миллисекундах time в значения полей календаря в fields[]. Это позволяет синхронизировать значения полей календаря с новым заданным временем для календаря. Время не вычисляется заново; для вычисления времени, а затем полей, вызовите метод complete().
- См. также:
computeTime()
getTime
public final Date getTime()
Возвращает объект Date , представляющий значение времени этого Calendar (смещение в миллисекундах от эпохи).
- Возвращает:
- объект
Date, представляющий значение времени. - См. также:
-
setTime(Date),getTimeInMillis()
setTime
public final void setTime(Date date)
Устанавливает время этого календаря заданным Date.
Примечание: Вызов setTime() с Date(Long.MAX_VALUE) или Date(Long.MIN_VALUE) может привести к неверным значениям полей из get().
- Параметры:
-
date- заданная дата. - См. также:
-
getTime(),setTimeInMillis(long)
getTimeInMillis
public long getTimeInMillis()
Возвращает значение времени этого календаря в миллисекундах.
- Возвращает:
- текущее время в миллисекундах UTC от эпохи.
- См. также:
-
getTime(),setTimeInMillis(long)
setTimeInMillis
public void setTimeInMillis(long millis)
Устанавливает текущее время этого календаря из заданного значения long.
- Параметры:
-
millis- новое время в миллисекундах UTC от эпохи. - См. также:
-
setTime(Date),getTimeInMillis()
get
public int get(int field)
Возвращает значение заданного поля календаря. В режиме «попустительства» все поля календаря нормализуются. В режиме «строгости» все поля календаря проверяются, и этот метод выбрасывает исключение, если какие-либо поля календаря имеют значения вне диапазона. Нормализация и проверка обрабатываются методом complete(), который зависит от системы календаря.
- Параметры:
-
field- заданное поле календаря. - Возвращает:
- значение для заданного поля календаря.
- Исключения:
-
ArrayIndexOutOfBoundsException- если указанное поле выходит за пределы диапазона (field < 0 || field >= FIELD_COUNT). - См. также:
-
set(int,int),complete()
internalGet
protected final int internalGet(int field)
Возвращает значение заданного поля календаря. Этот метод не включает нормализацию или проверку значения поля.
- Параметры:
-
field- заданное поле календаря. - Возвращает:
- значение для заданного поля календаря.
- См. также:
get(int)
set
public void set(int field,
int value) Устанавливает заданное поле календаря в заданное значение. Значение не интерпретируется этим методом независимо от режима «попустительства».
- Параметры:
-
field- заданное поле календаря. -
value- значение для установки заданного поля календаря. - Исключения:
-
ArrayIndexOutOfBoundsException- если указанное поле выходит за пределы диапазона (field < 0 || field >= FIELD_COUNT). в режиме «строгости». - См. также:
-
set(int,int,int),set(int,int,int,int,int),set(int,int,int,int,int,int),get(int)
set
public final void set(int year,
int month,
int date) Устанавливает значения для полей календаря YEAR, MONTH, и DAY_OF_MONTH. Предыдущие значения других полей календаря сохраняются. Если этого не нужно, сначала вызовите clear().
- Параметры:
-
year- значение для установки поля календаряYEAR. -
month- значение для установки поля календаряMONTH. Значение месяца основано на 0. Например, 0 для января. -
date- значение для установки поля календаряDAY_OF_MONTH. - См. также:
-
set(int,int),set(int,int,int,int,int),set(int,int,int,int,int,int)
set
public final void set(int year,
int month,
int date,
int hourOfDay,
int minute) Устанавливает значения для полей календаря YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, и MINUTE. Предыдущие значения других полей сохраняются. Если этого не нужно, сначала вызовите clear().
- Параметры:
-
year- значение для установки поля календаряYEAR. -
month- значение для установки поля календаряMONTH. Значение месяца основано на 0. Например, 0 для января. -
date- значение для установки поля календаряDAY_OF_MONTH. -
hourOfDay- значение для установки поля календаряHOUR_OF_DAY. -
minute- значение для установки поля календаряMINUTE. - См. также:
-
set(int,int),set(int,int,int),set(int,int,int,int,int,int)
set
public final void set(int year,
int month,
int date,
int hourOfDay,
int minute,
int second) Устанавливает значения для полей YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE, и SECOND. Предыдущие значения других полей сохраняются. Если этого не нужно, сначала вызовите clear().
- Параметры:
-
year- значение для установки поля календаряYEAR. -
month- значение для установки поля календаряMONTH. Значение месяца основано на 0. Например, 0 для января. -
date- значение для установки поля календаряDAY_OF_MONTH. -
hourOfDay- значение для установки поля календаряHOUR_OF_DAY. -
minute- значение для установки поля календаряMINUTE. -
second- значение для установки поля календаряSECOND. - См. также:
-
set(int,int),set(int,int,int),set(int,int,int,int,int)
clear
public final void clear()
Устанавливает все значения полей календаря и значение времени (смещение в миллисекундах от эпохи) этого Calendar в неопределенное значение. Это означает, что isSet() вернёт false для всех полей календаря, и вычисления даты и времени будут обрабатывать поля так, как если бы они никогда не задавались. Класс реализации Calendar может использовать свои собственные значения по умолчанию для полей для вычислений даты/времени. Например, GregorianCalendar использует 1970, если значение поля YEAR не определено.
- См. также:
clear(int)
clear
public final void clear(int field)
Устанавливает значение заданного поля календаря и значение времени (смещение в миллисекундах от эпохи) этого Calendar. Это означает, что isSet(field) вернёт false, и вычисления даты и времени будут рассматривать поле как никогда не устанавливаемое. Класс реализации Calendar может использовать конкретное значение по умолчанию поля для вычислений даты и времени.
Поля HOUR_OF_DAY, HOUR и AM_PM обрабатываются независимо, и применяется правило разрешения для времени суток правило разрешения для времени суток. Очистка одного из полей не сбрасывает значение часа дня этого Calendar. Используйте set(Calendar.HOUR_OF_DAY, 0) для сброса значения часа.
- Параметры:
-
field- поле календаря, которое нужно очистить. - См. также:
clear()
isSet
public final boolean isSet(int field)
Определяет, имеет ли заданное поле календаря значение, включая случаи, когда значение было установлено внутренними вычислениями полей, инициированными вызовом метода get.
- Параметры:
-
field- поле календаря для проверки - Возвращает:
-
true, если у заданного поля календаря установлено значение;falseв противном случае.
getDisplayName
public String getDisplayName(int field,
int style,
Locale locale) Возвращает строковое представление значения поля календаря field в данном style и locale. Если строковое представление неприменимо, возвращается null. Этот метод вызывает get(field) для получения значения поля календаря field, если строковое представление применимо к данному полю календаря field.
Например, если этот Calendar является GregorianCalendar, а его дата 2005-01-01, то строковое представление поля MONTH будет «Январь» в формате long в английском локали или «Янв» в формате short. Однако строковое представление для поля DAY_OF_MONTH недоступно, и этот метод вернёт null.
Реализация по умолчанию поддерживает поля календаря, для которых в данном locale есть имена в DateFormatSymbols.
- Параметры:
-
field- поле календаря, для которого возвращается строковое представление -
style- стиль, применяемый к строковому представлению; один изSHORT_FORMAT(SHORT),SHORT_STANDALONE,LONG_FORMAT(LONG),LONG_STANDALONE,NARROW_FORMATилиNARROW_STANDALONE. -
locale- локаль для строкового представления (любые типы календарей, указанные вlocale, игнорируются) - Возвращает:
- строковое представление данного
fieldв заданнойstyle, илиnullесли такое представление недоступно. - Исключения:
-
IllegalArgumentException- еслиfieldилиstyleнекорректны, или если этотCalendarне гибкий и любое из полей календаря имеет некорректные значения -
NullPointerException- еслиlocaleравно null - Начиная с:
- 1.6
getDisplayNames
public Map<String,Integer> getDisplayNames(int field,
int style,
Locale locale) Возвращает Map, содержащий все имена значений поля календаря в заданном style и locale и их соответствующие значения полей. Например, если этот Calendar — GregorianCalendar, возвращаемый массив будет содержать «Янв» для JANUARY, «Фев» для FEBRUARY и так далее, в формате short в английском локали.
Узкие имена могут не быть уникальными из-за использования одиночных символов, таких как «В» для воскресенья и субботы. В этом случае узкие имена не включаются в возвращаемый Map.
Значения других полей календаря могут учитываться для определения набора отображаемых имен. Например, если этот Calendar — лунно-солнечная система календаря, и значение года, заданное полем YEAR, имеет високосный месяц, этот метод возвращает имена месяцев, содержащие имя високосного месяца, и имена месяцев сопоставляются со своими значениями, специфичными для года.
Реализация по умолчанию поддерживает отображаемые имена, содержащиеся в DateFormatSymbols. Например, если field — MONTH, а style — ALL_STYLES, этот метод возвращает Map, содержащий все строки, возвращаемые DateFormatSymbols.getShortMonths() и DateFormatSymbols.getMonths().
- Параметры:
-
field- поле календаря, для которого возвращаются отображаемые имена -
style- стиль, применяемый к строковому представлению; один изSHORT_FORMAT(SHORT),SHORT_STANDALONE,LONG_FORMAT(LONG),LONG_STANDALONE,NARROW_FORMATилиNARROW_STANDALONE -
locale- локаль для отображаемых имен - Возвращает:
Map, содержащий все отображаемые имена вstyleиlocaleи их значения полей, илиnullесли дляfieldнет отображаемых имен- Исключения:
-
IllegalArgumentException- еслиfieldилиstyleнекорректны, или если этотCalendarне гибкий и любое из полей календаря имеет некорректные значения -
NullPointerException- еслиlocaleравно null - Начиная с:
- 1.6
complete
protected void complete()
Заполняет все не заданные поля в календаре. Сначала вызывается метод computeTime(), если значение времени (смещение в миллисекундах от эпохи) не было вычислено из значений полей календаря. Затем вызывается метод computeFields() для вычисления всех значений полей календаря.
getAvailableCalendarTypes
public static Set<String> getAvailableCalendarTypes()
Возвращает неизменяемый Set , содержащий все типы календарей, поддерживаемые Calendar в среде выполнения. Доступные типы календарей могут использоваться для расширений локали Unicode. Возвращаемый Set содержит как минимум "gregory". Типы календарей не включают псевдонимы, такие как "gregorian" для "gregory".
- Возвращает:
- неизменяемый
Set, содержащий все доступные типы календарей - Начиная с:
- 1.8
- См. также:
-
getCalendarType(),Calendar.Builder.setCalendarType(String),Locale.getUnicodeLocaleType(String)
getCalendarType
public String getCalendarType()
Возвращает тип календаря этого Calendar. Типы календарей определяются спецификацией Unicode Locale Data Markup Language (LDML).
Реализация по умолчанию этого метода возвращает имя класса этого экземпляра Calendar. Любые подклассы, реализующие LDML-определённые системы календарей, должны переопределить этот метод для возвращения соответствующих типов календарей.
- Возвращает:
- определяемый LDML тип календаря или имя класса этого экземпляра
Calendar - Начиная с:
- 1.8
- См. также:
-
Расширения локали,
Locale.Builder.setLocale(Locale),Locale.Builder.setUnicodeLocaleKeyword(String, String)
equals
public boolean equals(Object obj)
Сравнивает этот Calendar с указанным Object. Результат — true тогда и только тогда, когда аргумент — объект Calendar той же системы календаря, представляющий то же значение времени (смещение в миллисекундах от эпохи) при тех же параметрах Calendar , что и этот объект.
Параметры Calendar — значения, представленные методами isLenient, getFirstDayOfWeek, getMinimalDaysInFirstWeek и getTimeZone. Если между двумя объектами Calendar есть какие-либо различия в этих параметрах, этот метод возвращает false.
Используйте метод compareTo для сравнения только значений времени.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект для сравнения. - Возвращает:
-
true, если этот объект равенobj;falseв противном случае. - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает хэш-код для этого календаря.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- Начиная с:
- 1.2
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
before
public boolean before(Object when)
Возвращает значение, указывающее, представляет ли этот Calendar время до времени, представленного указанным Object. Этот метод эквивалентен:
compareTo(when) < 0только тогда, когда
when является экземпляром Calendar. В противном случае метод возвращает false. - Параметры:
-
when- сравниваемыйObject - Возвращает:
-
trueесли время этогоCalendarраньше времени, представленногоwhen;falseв противном случае. - См. также:
compareTo(Calendar)
after
public boolean after(Object when)
Возвращает значение, указывающее, представляет ли этот Calendar время после времени, представленного указанным Object. Этот метод эквивалентен:
compareTo(when) > 0только тогда, когда
when является экземпляром Calendar. В противном случае метод возвращает false. - Параметры:
-
when- сравниваемыйObject - Возвращает:
-
trueесли время этогоCalendarпосле времени, представленногоwhen;falseв противном случае. - См. также:
compareTo(Calendar)
compareTo
public int compareTo(Calendar anotherCalendar)
Сравнивает значения времени (смещения в миллисекундах от эпохи), представленные двумя объектами Calendar.
- Указано в:
-
compareToв интерфейсеComparable<Calendar> - Параметры:
-
anotherCalendar- сравниваемыйCalendar. - Возвращает:
- значение
0если время, представленное аргументом, равно времени, представленному этимCalendar; значение меньше0если время этогоCalendarраньше времени, представленного аргументом; и значение больше0если время этогоCalendarпозже времени, представленного аргументом. - Исключения:
-
NullPointerException- если указанныйCalendarnull. -
IllegalArgumentException- если значение времени указанного объектаCalendarобъекта невозможно получить из-за недопустимых значений календаря. - С:
- 1.5
add
public abstract void add(int field,
int amount) Добавляет или вычитает указанное количество времени к заданному полю календаря на основе правил календаря. Например, чтобы вычесть 5 дней из текущего времени календаря, можно вызвать:
add(Calendar.DAY_OF_MONTH, -5).
- Параметры:
-
field- поле календаря. -
amount- количество добавляемых к полю дней или времени. - См. также:
-
roll(int,int),set(int,int)
roll
public abstract void roll(int field,
boolean up) Добавляет или вычитает (вверх/вниз) единицу времени по заданному полю времени без изменения более крупных полей. Например, чтобы переместить текущую дату на один день вперед, можно вызвать:
roll(Calendar.DATE, true). При прокрутке по полю года или Calendar.YEAR, значение года будет прокручиваться в диапазоне от 1 до значения, возвращаемого вызовом getMaximum(Calendar.YEAR). При прокрутке по полю месяца или Calendar.MONTH другие поля, такие как дата, могут конфликтовать и потребуют изменения. Например, при прокрутке месяца по дате 01/31/96 результат будет 02/29/96. При прокрутке по полю часа или Calendar.HOUR_OF_DAY значение часа будет прокручиваться в диапазоне от 0 до 23, что основано на нуле.
- Параметры:
-
field- поле времени. -
up- указывает, следует ли увеличивать или уменьшать значение заданного поля времени. Используйте true, если прокручиваете вверх, и false в противном случае. - См. также:
-
add(int,int),set(int,int)
roll
public void roll(int field,
int amount) Добавляет указанное (знаковое) количество к указанному полю календаря без изменения более крупных полей. Отрицательное количество означает прокрутку вниз.
ПРИМЕЧАНИЕ: Это стандартное реализация в Calendar просто повторяет вызов варианта roll() с прокруткой на одну единицу. Это не всегда может давать правильный результат. Например, если поле DAY_OF_MONTH равно 31, прокрутка через февраль оставит его равным 28. Версия GregorianCalendar этой функции решает эту проблему. Другие подклассы также должны предоставлять переопределения этой функции, дающие правильный результат.
- Параметры:
-
field- поле календаря. -
amount- знаковое количество, добавляемое к полю календаряfield. - С:
- 1.2
- См. также:
-
roll(int,boolean),add(int,int),set(int,int)
setTimeZone
public void setTimeZone(TimeZone value)
Устанавливает часовой пояс с заданным значением часового пояса.
- Параметры:
-
value- заданный часовой пояс.
getTimeZone
public TimeZone getTimeZone()
Возвращает часовой пояс.
- Возвращает:
- объект часового пояса, связанный с этим календарем.
setLenient
public void setLenient(boolean lenient)
Устанавливает, будет ли интерпретация даты/времени мягкой. При мягкой интерпретации дата, например, «942 февраля 1996 года», будет рассматриваться как эквивалентная 941-му дню после 1 февраля 1996 года. При строгой (немягкой) интерпретации такие даты вызовут исключение. По умолчанию интерпретация мягкая.
- Параметры:
-
lenient-trueесли мягкий режим должен быть включен;falseесли он должен быть выключен. - См. также:
-
isLenient(),DateFormat.setLenient(boolean)
isLenient
public boolean isLenient()
Указывает, будет ли интерпретация даты/времени мягкой.
- Возвращает:
-
trueесли режим интерпретации этого календаря мягкий;falseв противном случае. - См. также:
setLenient(boolean)
setFirstDayOfWeek
public void setFirstDayOfWeek(int value)
Устанавливает первый день недели; например, SUNDAY в США, MONDAY во Франции.
- Параметры:
-
value- заданный первый день недели. - См. также:
-
getFirstDayOfWeek(),getMinimalDaysInFirstWeek()
getFirstDayOfWeek
public int getFirstDayOfWeek()
Возвращает первый день недели; например, SUNDAY в США, MONDAY во Франции.
- Возвращает:
- первый день недели.
- См. также:
-
setFirstDayOfWeek(int),getMinimalDaysInFirstWeek()
setMinimalDaysInFirstWeek
public void setMinimalDaysInFirstWeek(int value)
Устанавливает минимальное количество дней, необходимых в первой неделе года; Например, если первая неделя определяется как неделя, содержащая первый день первого месяца года, вызовите этот метод со значением 1. Если это должна быть полная неделя, используйте значение 7.
- Параметры:
-
value- минимальное количество дней, необходимых в первой неделе года. - См. также:
getMinimalDaysInFirstWeek()
getMinimalDaysInFirstWeek
public int getMinimalDaysInFirstWeek()
Возвращает минимальное количество дней, необходимых в первой неделе года; например, если первая неделя определяется как неделя, содержащая первый день первого месяца года, этот метод возвращает 1. Если минимальное количество дней должно составлять полную неделю, этот метод возвращает 7.
- Возвращает:
- минимальное количество дней, необходимых в первой неделе года.
- См. также:
setMinimalDaysInFirstWeek(int)
isWeekDateSupported
public boolean isWeekDateSupported()
Возвращает значение, указывающее, поддерживает ли этот Calendar даты недель.
Стандартная реализация этого метода возвращает false.
- Возвращает:
-
trueесли этотCalendarподдерживает даты недель;falseв противном случае. - С:
- 1.7
- См. также:
-
getWeekYear(),setWeekDate(int,int,int),getWeeksInWeekYear()
getWeekYear
public int getWeekYear()
Возвращает год недели, представленный этим Calendar. Год недели синхронизирован с циклом недель. Первый день первой недели — это первый день года недели.
Стандартная реализация этого метода выбрасывает UnsupportedOperationException.
- Возвращает:
- год недели этого
Calendar - Исключения:
-
UnsupportedOperationException- если какая-либо нумерация годов недель не поддерживается в этомCalendar. - С:
- 1.7
- См. также:
-
isWeekDateSupported(),getFirstDayOfWeek(),getMinimalDaysInFirstWeek()
setWeekDate
public void setWeekDate(int weekYear,
int weekOfYear,
int dayOfWeek) Устанавливает дату этого Calendar с заданными параметрами даты — годом недели, неделей года и днем недели.
В отличие от метода set, все значения полей календаря и time вычисляются при возврате.
Если weekOfYear выходит за допустимый диапазон недели в weekYear, значения weekYear и
weekOfYear корректируются в мягком режиме или выбрасывается исключение
IllegalArgumentException в немягком режиме.
Стандартная реализация этого метода выбрасывает UnsupportedOperationException.
- Параметры:
-
weekYear- год недели -
weekOfYear- номер недели на основеweekYear -
dayOfWeek- значение дня недели: одно из констант для поляDAY_OF_WEEK:SUNDAY, ...,SATURDAY. - Исключения:
-
IllegalArgumentException- если любой из заданных спецификаторов даты недействителен или любое из полей календаря несовместимо с заданными спецификаторами даты в режиме без строгой проверки -
UnsupportedOperationException- если какая-либо нумерация года недели не поддерживается в этомCalendar. - С тех пор:
- 1.7
- См. также:
-
isWeekDateSupported(),getFirstDayOfWeek(),getMinimalDaysInFirstWeek()
getWeeksInWeekYear
public int getWeeksInWeekYear()
Возвращает количество недель в году недели, представленном этим Calendar.
Реализация по умолчанию этого метода выбрасывает UnsupportedOperationException.
- Возвращает:
- количество недель в году недели.
- Исключения:
-
UnsupportedOperationException- если какая-либо нумерация года недели не поддерживается в этомCalendar. - С тех пор:
- 1.7
- См. также:
-
WEEK_OF_YEAR,isWeekDateSupported(),getWeekYear(),getActualMaximum(int)
getMinimum
public abstract int getMinimum(int field)
Возвращает минимальное значение для заданного поля календаря этого экземпляра Calendar. Минимальное значение определяется как наименьшее значение, возвращаемое методом get для любого возможного значения времени. Минимальное значение зависит от параметров, специфичных для системы календаря, экземпляра.
- Параметры:
-
field- поле календаря. - Возвращает:
- минимальное значение для заданного поля календаря.
- См. также:
-
getMaximum(int),getGreatestMinimum(int),getLeastMaximum(int),getActualMinimum(int),getActualMaximum(int)
getMaximum
public abstract int getMaximum(int field)
Возвращает максимальное значение для заданного поля календаря этого экземпляра Calendar. Максимальное значение определяется как наибольшее значение, возвращаемое методом get для любого возможного значения времени. Максимальное значение зависит от параметров, специфичных для системы календаря, экземпляра.
- Параметры:
-
field- поле календаря. - Возвращает:
- максимальное значение для заданного поля календаря.
- См. также:
-
getMinimum(int),getGreatestMinimum(int),getLeastMaximum(int),getActualMinimum(int),getActualMaximum(int)
getGreatestMinimum
public abstract int getGreatestMinimum(int field)
Возвращает наибольшее минимальное значение для заданного поля календаря этого экземпляра Calendar. Наибольшее минимальное значение определяется как наибольшее значение, возвращаемое getActualMinimum(int) для любого возможного значения времени. Наибольшее минимальное значение зависит от параметров, специфичных для системы календаря, экземпляра.
- Параметры:
-
field- поле календаря. - Возвращает:
- наибольшее минимальное значение для заданного поля календаря.
- См. также:
-
getMinimum(int),getMaximum(int),getLeastMaximum(int),getActualMinimum(int),getActualMaximum(int)
getLeastMaximum
public abstract int getLeastMaximum(int field)
Возвращает наименьшее максимальное значение для заданного поля календаря этого экземпляра Calendar. Наименьшее максимальное значение определяется как наименьшее значение, возвращаемое getActualMaximum(int) для любого возможного значения времени. Наименьшее максимальное значение зависит от параметров, специфичных для системы календаря, экземпляра. Например, Calendar для системы календаря Григорианского календаря возвращает 28 для поля DAY_OF_MONTH, потому что 28-е число — последний день самого короткого месяца в этом календаре, февраля в невисокосном году.
- Параметры:
-
field- поле календаря. - Возвращает:
- наименьшее максимальное значение для заданного поля календаря.
- См. также:
-
getMinimum(int),getMaximum(int),getGreatestMinimum(int),getActualMinimum(int),getActualMaximum(int)
getActualMinimum
public int getActualMinimum(int field)
Возвращает минимальное значение, которое может иметь указанное поле календаря, учитывая значение времени этого экземпляра Calendar.
Реализация по умолчанию этого метода использует итеративный алгоритм для определения фактического минимального значения поля календаря. Подклассы, если возможно, должны переопределить это более эффективной реализацией — во многих случаях они могут просто вернуть getMinimum().
- Параметры:
-
field- поле календаря - Возвращает:
- минимальное значение заданного поля календаря для значения времени этого экземпляра
Calendar - С тех пор:
- 1.2
- См. также:
-
getMinimum(int),getMaximum(int),getGreatestMinimum(int),getLeastMaximum(int),getActualMaximum(int)
getActualMaximum
public int getActualMaximum(int field)
Возвращает максимальное значение, которое может иметь указанное поле календаря, учитывая значение времени этого экземпляра Calendar. Например, фактическое максимальное значение поля MONTH составляет 12 в некоторых годах и 13 в других годах в системе календаря иврита.
Реализация по умолчанию этого метода использует итеративный алгоритм для определения фактического максимального значения поля календаря. Подклассы должны, если возможно, переопределить это более эффективной реализацией.
- Параметры:
-
field- поле календаря - Возвращает:
- максимальное значение заданного поля календаря для значения времени этого экземпляра
Calendar - С тех пор:
- 1.2
- См. также:
-
getMinimum(int),getMaximum(int),getGreatestMinimum(int),getLeastMaximum(int),getActualMinimum(int)
clone
public Object clone()
Создает и возвращает копию этого объекта.
toString
public String toString()
Возвращает строковое представление этого календаря. Этот метод предназначен только для отладки, и формат возвращаемой строки может отличаться в разных реализациях. Возвращаемая строка может быть пустой, но не null.
toInstant
public final Instant toInstant()
Преобразует этот объект в Instant.
Преобразование создает Instant , представляющий ту же точку на временной шкале, что и этот экземпляр Calendar.
- Возвращает:
- мгновение, представляющее ту же точку на временной шкале
- С тех пор:
- 1.8
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Calendar.html