Класс GregorianCalendar
- Все реализованные интерфейсы:
Serializable, Cloneable, Comparable<Calendar>
public class GregorianCalendar extends Calendar
GregorianCalendar — конкретный подкласс Calendar, предоставляющий стандартную календарную систему, используемую в большинстве стран мира. GregorianCalendar — гибридный календарь, поддерживающий как юлианскую, так и григорианскую календарные системы с одной точкой перехода, которая по умолчанию соответствует григорианской дате введения григорианского календаря (15 октября 1582 года в некоторых странах, позднее — в других). Вызывающий код может изменить дату перехода, вызвав setGregorianChange().
Исторически в странах, первыми принявших григорианский календарь, за 4 октября 1582 года (по юлианскому календарю) последовало 15 октября 1582 года (по григорианскому календарю). Этот календарь корректно моделирует данный переход. До перехода на григорианский календарь GregorianCalendar реализует юлианский календарь. Единственное различие между григорианским и юлианским календарями заключается в правиле високосного года. В юлианском календаре каждый четвёртый год является високосным, тогда как в григорианском календаре годы, оканчивающиеся на нули, не считаются високосными, если они не делятся на 400.
GregorianCalendar реализует пролептические григорианский и юлианский календари. То есть даты вычисляются путём неограниченной экстраполяции действующих правил как в прошлое, так и в будущее. В результате GregorianCalendar можно использовать для всех лет, получая осмысленные и последовательные результаты. Однако даты, полученные с помощью GregorianCalendar, исторически точны только начиная с 1 марта 4 года нашей эры, когда были приняты современные правила юлианского календаря. До этой даты правила високосных лет применялись нерегулярно, а до 45 года до нашей эры юлианского календаря вообще не существовало.
До введения григорианского календаря Новым годом считалось 25 марта. Во избежание путаницы этот календарь всегда использует 1 января. При необходимости даты, предшествующие переходу на григорианский календарь и попадающие в период с 1 января по 24 марта, можно скорректировать вручную.
Неделя года и неделя календарного года
Значения, вычисляемые для поля WEEK_OF_YEAR, находятся в диапазоне от 1 до 53. Первая неделя календарного года — это самый ранний семидневный период, начинающийся в getFirstDayOfWeek() и содержащий не менее getMinimalDaysInFirstWeek() дней этого года. Таким образом, она зависит от значений getMinimalDaysInFirstWeek(),
getFirstDayOfWeek() и дня недели, на который приходится 1 января. Недели между первой неделей одного года и первой неделей следующего года (не включая последнюю) нумеруются последовательно от 2 до 52 или 53 (за исключением года или лет, затронутых переходом с юлианского на григорианский календарь).
Значения getFirstDayOfWeek() и
getMinimalDaysInFirstWeek() инициализируются с использованием ресурсов, зависящих от локали, при создании
GregorianCalendar. Определение недели совместимо со стандартом ISO 8601, если
getFirstDayOfWeek() равно MONDAY, а
getMinimalDaysInFirstWeek() равно 4; эти значения используются в локалях, где предпочтителен данный стандарт. Их можно задать явно, вызвав setFirstDayOfWeek() и setMinimalDaysInFirstWeek().
Неделя календарного года синхронизирована с циклом WEEK_OF_YEAR. Все недели между первой и последней неделями включительно имеют одинаковое значение недели календарного года. Поэтому первые и последние дни недели календарного года могут относиться к разным календарным годам.
Например, 1 января 1998 года приходится на четверг. Если
getFirstDayOfWeek() равно MONDAY, а
getMinimalDaysInFirstWeek() равно 4 (настройка, совместимая со стандартом ISO 8601), то первая неделя 1998 года начинается 29 декабря 1997 года и заканчивается 4 января 1998 года. Для последних трёх дней календарного 1997 года неделей календарного года является 1998 год. Однако если getFirstDayOfWeek() равно SUNDAY, то первая неделя 1998 года начинается 4 января 1998 года и заканчивается 10 января 1998 года; тогда первые три дня 1998 года относятся к 53-й неделе 1997 года, а их неделя календарного года — 1997 год.
Неделя месяца
Значения, вычисляемые для поля WEEK_OF_MONTH, находятся в диапазоне от 0 до 6. Первая неделя месяца (дни со значением WEEK_OF_MONTH =
1) — это самый ранний набор как минимум из getMinimalDaysInFirstWeek() последовательных дней этого месяца, заканчивающийся накануне getFirstDayOfWeek(). В отличие от первой недели года, первая неделя месяца может быть короче 7 дней, не обязана начинаться в getFirstDayOfWeek() и не включает дни предыдущего месяца. Дни месяца, предшествующие первой неделе, имеют значение WEEK_OF_MONTH, равное 0.
Например, если getFirstDayOfWeek() равно SUNDAY, а getMinimalDaysInFirstWeek() равно 4, то первая неделя января 1998 года длится с воскресенья, 4 января, по субботу, 10 января. Значение WEEK_OF_MONTH для этих дней равно 1. Для дней с четверга, 1 января, по субботу, 3 января значение WEEK_OF_MONTH равно 0. Если изменить getMinimalDaysInFirstWeek() на 3, то для дней с 1 по 3 января значение WEEK_OF_MONTH будет равно 1.
Значения полей по умолчанию
Метод clear делает значения полей календаря неопределёнными. Если значение поля календаря неопределённо, GregorianCalendar использует для него следующее значение по умолчанию.
| Поле | Значение по умолчанию |
|---|---|
ERA | AD |
YEAR | 1970 |
MONTH | JANUARY |
DAY_OF_MONTH | 1 |
DAY_OF_WEEK | the first day of week |
WEEK_OF_MONTH | 0 |
DAY_OF_WEEK_IN_MONTH | 1 |
AM_PM | AM |
HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND | 0 |
Значения по умолчанию не применяются к полям, не перечисленным выше.
Пример:
// get the supported ids for GMT-08:00 (Pacific Standard Time)
String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
// if no ids were returned, something is wrong. get out.
if (ids.length == 0)
System.exit(0);
// begin output
System.out.println("Current Time");
// create a Pacific Standard Time time zone
SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);
// set up rules for Daylight Saving Time
pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
// create a GregorianCalendar with the Pacific Daylight time zone
// and the current date and time
Calendar calendar = new GregorianCalendar(pdt);
Date trialTime = new Date();
calendar.setTime(trialTime);
// print out a bunch of interesting things
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: "
+ calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: "
+ (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
System.out.println("DST_OFFSET: "
+ (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));
System.out.println("Current Time, with hour reset to 3");
calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
calendar.set(Calendar.HOUR, 3);
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: "
+ calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: "
+ (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
System.out.println("DST_OFFSET: "
+ (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours
- Начиная с версии:
- 1.1
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Calendar
Calendar.Builder | Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
Calendar.Builder |
Calendar.Builder используется для создания Calendar из различных параметров даты и времени. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
AD |
Значение поля ERA, обозначающее нашу эру (Anno Domini), также известную как CE. |
static final int |
BC |
Значение поля ERA, обозначающее период до нашей эры (до Рождества Христова), также известный как BCE. |
Поля, объявленные в классе Calendar
ALL_STYLES, AM, AM_PM, APRIL, areFieldsSet, AUGUST, DATE, DAY_OF_MONTH, DAY_OF_WEEK, DAY_OF_WEEK_IN_MONTH, DAY_OF_YEAR, DECEMBER, DST_OFFSET, ERA, FEBRUARY, FIELD_COUNT, fields, FRIDAY, HOUR, HOUR_OF_DAY, isSet, isTimeSet, JANUARY, JULY, JUNE, LONG, LONG_FORMAT, LONG_STANDALONE, MARCH, MAY, MILLISECOND, MINUTE, MONDAY, MONTH, NARROW_FORMAT, NARROW_STANDALONE, NOVEMBER, OCTOBER, PM, SATURDAY, SECOND, SEPTEMBER, SHORT, SHORT_FORMAT, SHORT_STANDALONE, SUNDAY, THURSDAY, time, TUESDAY, UNDECIMBER, WEDNESDAY, WEEK_OF_MONTH, WEEK_OF_YEAR, YEAR, ZONE_OFFSET | Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
ALL_STYLES |
Спецификатор стиля для getDisplayNames, указывающий на имена во всех стилях, например «January» и «Jan». |
static final int |
AM |
Значение поля Calendar.AM_PM, обозначающее период дня от полуночи до полудня. |
static final int |
AM_PM |
Номер поля для get и set, указывающий, находится ли HOUR до или после полудня. |
static final int |
APRIL |
Значение поля Calendar.MONTH, обозначающее четвёртый месяц года в григорианском и юлианском календарях. |
protected boolean |
areFieldsSet |
Истинно, если fields[] синхронизированы с установленным временем. |
static final int |
AUGUST |
Значение поля Calendar.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 |
Значение поля Calendar.MONTH, обозначающее двенадцатый месяц года в григорианском и юлианском календарях. |
static final int |
DST_OFFSET |
Номер поля для get и set, указывающий смещение летнего времени в миллисекундах. |
static final int |
ERA |
Номер поля для get и set, указывающий эру, например AD или BC в юлианском календаре. |
static final int |
FEBRUARY |
Значение поля Calendar.MONTH, обозначающее второй месяц года в григорианском и юлианском календарях. |
static final int |
FIELD_COUNT |
Количество различных полей, распознаваемых get и set. |
protected int[] |
fields |
Значения полей календаря, соответствующие установленному для этого календаря времени. |
static final int |
FRIDAY |
Значение поля Calendar.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 |
Значение поля Calendar.MONTH, обозначающее первый месяц года в григорианском и юлианском календарях. |
static final int |
JULY |
Значение поля Calendar.MONTH, обозначающее седьмой месяц года в григорианском и юлианском календарях. |
static final int |
JUNE |
Значение поля Calendar.MONTH, обозначающее шестой месяц года в григорианском и юлианском календарях. |
static final int |
LONG |
|
static final int |
LONG_FORMAT |
Спецификатор стиля для getDisplayName и getDisplayNames, обозначающий длинное имя, используемое при форматировании. |
static final int |
LONG_STANDALONE |
Спецификатор стиля для getDisplayName и getDisplayNames, обозначающий длинное имя, используемое отдельно, например название месяца в заголовке календаря. |
static final int |
MARCH |
Значение поля Calendar.MONTH, обозначающее третий месяц года в григорианском и юлианском календарях. |
static final int |
MAY |
Значение поля Calendar.MONTH, обозначающее пятый месяц года в григорианском и юлианском календарях. |
static final int |
MILLISECOND |
Номер поля для get и set, указывающий миллисекунду внутри секунды. |
static final int |
MINUTE |
Номер поля для get и set, указывающий минуту внутри часа. |
static final int |
MONDAY |
Значение поля Calendar.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 |
Значение поля Calendar.MONTH, обозначающее одиннадцатый месяц года в григорианском и юлианском календарях. |
static final int |
OCTOBER |
Значение поля Calendar.MONTH, обозначающее десятый месяц года в григорианском и юлианском календарях. |
static final int |
PM |
Значение поля Calendar.AM_PM, обозначающее период дня от полудня до полуночи. |
static final int |
SATURDAY |
Значение поля Calendar.DAY_OF_WEEK, обозначающее субботу. |
static final int |
SECOND |
Номер поля для get и set, указывающий секунду внутри минуты. |
static final int |
SEPTEMBER |
Значение поля Calendar.MONTH, обозначающее девятый месяц года в григорианском и юлианском календарях. |
static final int |
SHORT |
|
static final int |
SHORT_FORMAT |
Спецификатор стиля для getDisplayName и getDisplayNames, обозначающий короткое имя, используемое при форматировании. |
static final int |
SHORT_STANDALONE |
Спецификатор стиля для getDisplayName и getDisplayNames, обозначающий короткое имя, используемое отдельно, например сокращение названия месяца в заголовке календаря. |
static final int |
SUNDAY |
Значение поля Calendar.DAY_OF_WEEK, обозначающее воскресенье. |
static final int |
THURSDAY |
Значение поля Calendar.DAY_OF_WEEK, обозначающее четверг. |
protected long |
time |
Установленное для этого календаря время, выраженное в миллисекундах с 1 января 1970 года, 0:00:00 GMT. |
static final int |
TUESDAY |
Значение поля Calendar.DAY_OF_WEEK, обозначающее вторник. |
static final int |
UNDECIMBER |
Значение поля Calendar.MONTH, обозначающее тринадцатый месяц года. |
static final int |
WEDNESDAY |
Значение поля Calendar.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 в миллисекундах. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
GregorianCalendar() |
Создаёт GregorianCalendar по умолчанию, используя текущее время в часовом поясе по умолчанию и локаль FORMAT по умолчанию. |
GregorianCalendar |
Создаёт GregorianCalendar с заданной датой в часовом поясе по умолчанию и локалью по умолчанию. |
GregorianCalendar |
Создаёт GregorianCalendar с заданными датой и временем в часовом поясе по умолчанию и локалью по умолчанию. |
GregorianCalendar |
Создаёт GregorianCalendar с заданными датой и временем в часовом поясе по умолчанию и локалью по умолчанию. |
GregorianCalendar |
Создаёт GregorianCalendar на основе текущего времени в часовом поясе по умолчанию и заданной локали. |
GregorianCalendar |
Создаёт GregorianCalendar на основе текущего времени в заданном часовом поясе и локали FORMAT по умолчанию. |
GregorianCalendar |
Создаёт GregorianCalendar на основе текущего времени в заданном часовом поясе и заданной локали. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Добавляет указанное (знаковое) значение времени к заданному полю календаря в соответствии с правилами календаря. |
protected void |
computeFields() |
Преобразует значение времени (смещение в миллисекундах относительно эпохи) в значения полей календаря. |
protected void |
computeTime() |
Преобразует значения полей календаря в значение времени (смещение в миллисекундах относительно эпохи). |
boolean |
equals |
Сравнивает этот GregorianCalendar с указанным Object. |
static GregorianCalendar |
from |
Получает экземпляр GregorianCalendar с локалью по умолчанию из объекта ZonedDateTime. |
int |
getActualMaximum |
Возвращает максимальное значение, которое может иметь это поле календаря, с учетом заданного значения времени и текущих значений методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone. |
int |
getActualMinimum |
Возвращает минимальное значение, которое может иметь это поле календаря, с учетом заданного значения времени и текущих значений методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone. |
String |
getCalendarType() |
Возвращает "gregory" в качестве типа календаря. |
int |
getGreatestMinimum |
Возвращает наибольшее минимальное значение для заданного поля календаря этого экземпляра GregorianCalendar. |
final Date |
getGregorianChange() |
Получает дату перехода на григорианский календарь. |
int |
getLeastMaximum |
Возвращает наименьшее максимальное значение для заданного поля календаря этого экземпляра GregorianCalendar. |
int |
getMaximum |
Возвращает максимальное значение для заданного поля календаря этого экземпляра GregorianCalendar. |
int |
getMinimum |
Возвращает минимальное значение для заданного поля календаря этого экземпляра GregorianCalendar. |
int |
getWeeksInWeekYear() |
Возвращает количество недель в недельном году, представленном этим GregorianCalendar. |
int |
getWeekYear() |
Возвращает недельный год, представленный этим GregorianCalendar. |
int |
hashCode() |
Вычисляет хеш-код этого объекта GregorianCalendar. |
boolean |
isLeapYear |
Определяет, является ли заданный год високосным. |
final boolean |
isWeekDateSupported() |
Возвращает true, указывающее, что этот GregorianCalendar поддерживает даты в формате недель. |
void |
roll |
Увеличивает или уменьшает значение на одну единицу времени в заданном поле времени, не изменяя старшие поля. |
void |
roll |
Добавляет знаковое значение к указанному полю календаря, не изменяя старшие поля. |
void |
setGregorianChange |
Задает дату перехода на GregorianCalendar. |
void |
setWeekDate |
Задает для этого GregorianCalendar дату, указанную компонентами даты: weekYear, weekOfYear и dayOfWeek. |
ZonedDateTime |
toZonedDateTime() |
Преобразует этот объект в ZonedDateTime, представляющий тот же момент на временной шкале, что и этот GregorianCalendar. |
Методы, объявленные в классе Calendar
after, before, clear, clear, clone, compareTo, complete, get, getAvailableCalendarTypes, getAvailableLocales, getDisplayName, getDisplayNames, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, getTimeZone, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, setTimeZone, toInstant, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
after |
Возвращает, представляет ли этот Calendar время, наступающее после времени, представленного указанным Object. |
boolean |
before |
Возвращает, представляет ли этот Calendar время, наступающее до времени, представленного указанным Object. |
final void |
clear() |
Сбрасывает значения всех полей календаря и значение времени (смещение в миллисекундах относительно эпохи) этого Calendar. |
final void |
clear |
Сбрасывает заданное значение поля календаря и значение времени (смещение в миллисекундах относительно эпохи) этого Calendar. |
Object |
clone() |
Создает и возвращает копию этого объекта. |
int |
compareTo |
Сравнивает значения времени (смещения в миллисекундах относительно эпохи), представленные двумя объектами Calendar. |
protected void |
complete() |
Заполняет все незаданные поля календаря. |
int |
get |
Возвращает значение заданного поля календаря. |
static Set |
getAvailableCalendarTypes() |
Возвращает неизменяемый Set, содержащий все типы календарей, поддерживаемые Calendar в среде выполнения. |
static Locale[] |
getAvailableLocales() |
Возвращает массив всех локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры. |
String |
getDisplayName |
Возвращает строковое представление значения field календаря для заданных style и locale. |
Map |
getDisplayNames |
Возвращает Map, содержащий все имена field календаря для заданных style и locale, а также соответствующие им значения полей. |
int |
getFirstDayOfWeek() |
Возвращает первый день недели; например, SUNDAY в США и MONDAY во Франции. |
static Calendar |
getInstance() |
Получает календарь с часовым поясом и локалью по умолчанию. |
static Calendar |
getInstance |
Получает календарь с часовым поясом по умолчанию и указанной локалью. |
static Calendar |
getInstance |
Получает календарь с указанным часовым поясом и локалью по умолчанию. |
static Calendar |
getInstance |
Получает календарь с указанными часовым поясом и локалью. |
int |
getMinimalDaysInFirstWeek() |
Возвращает минимальное количество дней в первой неделе года; например, если первой считается неделя, содержащая первый день первого месяца года, этот метод возвращает 1. |
final Date |
getTime() |
Возвращает объект Date, представляющий значение времени этого Calendar (смещение в миллисекундах относительно эпохи). |
long |
getTimeInMillis() |
Возвращает значение времени этого календаря в миллисекундах. |
TimeZone |
getTimeZone() |
Получает часовой пояс. |
protected final int |
internalGet |
Возвращает значение заданного поля календаря. |
boolean |
isLenient() |
Указывает, следует ли выполнять интерпретацию даты и времени с допуском отклонений. |
final boolean |
isSet |
Определяет, задано ли значение для указанного поля календаря, в том числе в случаях, когда значение было установлено при вычислении внутренних полей, вызванном вызовом метода get. |
void |
set |
Устанавливает для заданного поля календаря указанное значение. |
final void |
set |
Устанавливает значения полей календаря YEAR, MONTH и DAY_OF_MONTH. |
final void |
set |
Устанавливает значения полей календаря YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY и MINUTE. |
final void |
set |
Устанавливает значения полей YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE и SECOND. |
void |
setFirstDayOfWeek |
Задает первый день недели; например, SUNDAY в США и MONDAY во Франции. |
void |
setLenient |
Указывает, следует ли выполнять интерпретацию даты и времени с допуском отклонений. |
void |
setMinimalDaysInFirstWeek |
Задает минимальное количество дней в первой неделе года. Например, если первой считается неделя, содержащая первый день первого месяца года, вызовите этот метод со значением 1. |
final void |
setTime |
Устанавливает время этого календаря, используя заданный Date. |
void |
setTimeInMillis |
Устанавливает текущее время этого календаря из заданного значения типа long. |
void |
setTimeZone |
Устанавливает часовой пояс, используя заданное значение часового пояса. |
final Instant |
toInstant() |
Преобразует этот объект в Instant. |
String |
toString() |
Возвращает строковое представление этого календаря. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
BC
public static final int BC
ERA, указывающее на период до нашей эры (до Рождества Христова), также известный как BCE. Последовательность лет при переходе от BC к AD выглядит так: ..., 2 BC, 1 BC, 1 AD, 2 AD,...- См. также:
AD
public static final int AD
ERA, указывающее на нашу эру (Anno Domini), также известную как CE. Последовательность лет при переходе от BC к AD выглядит так: ..., 2 BC, 1 BC, 1 AD, 2 AD,...- См. также:
Подробное описание конструкторов
GregorianCalendar
public GregorianCalendar()
GregorianCalendar по умолчанию, используя текущее время в часовом поясе по умолчанию и локаль FORMAT по умолчанию.GregorianCalendar
public GregorianCalendar(TimeZone zone)
GregorianCalendar на основе текущего времени в указанном часовом поясе и локали FORMAT по умолчанию.- Параметры:
-
zone— указанный часовой пояс. - Вызывает исключение:
-
NullPointerException— еслиzoneравноnull
GregorianCalendar
public GregorianCalendar(Locale aLocale)
GregorianCalendar на основе текущего времени в часовом поясе по умолчанию и указанной локали.- Параметры:
-
aLocale— указанная локаль. - Вызывает исключение:
-
NullPointerException— еслиaLocaleравноnull
GregorianCalendar
public GregorianCalendar(TimeZone zone, Locale aLocale)
GregorianCalendar на основе текущего времени в указанном часовом поясе и указанной локали.- Параметры:
-
zone— указанный часовой пояс. -
aLocale— указанная локаль. - Вызывает исключение:
-
NullPointerException— еслиzoneилиaLocaleравноnull
GregorianCalendar
public GregorianCalendar(int year, int month, int dayOfMonth)
GregorianCalendar с указанной датой в часовом поясе и локали по умолчанию.- Параметры:
-
year— значение, используемое для установки поля календаряYEAR. -
month— значение, используемое для установки поля календаряMONTH. Нумерация месяцев начинается с 0. Например, 0 соответствует январю. -
dayOfMonth— значение, используемое для установки поля календаряDAY_OF_MONTH.
GregorianCalendar
public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
GregorianCalendar с указанными датой и временем в часовом поясе и локали по умолчанию.- Параметры:
-
year— значение, используемое для установки поля календаряYEAR. -
month— значение, используемое для установки поля календаряMONTH. Нумерация месяцев начинается с 0. Например, 0 соответствует январю. -
dayOfMonth— значение, используемое для установки поля календаряDAY_OF_MONTH. -
hourOfDay— значение, используемое для установки поля календаряHOUR_OF_DAY. -
minute— значение, используемое для установки поля календаряMINUTE.
GregorianCalendar
public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
- Параметры:
-
year— значение, используемое для установки поля календаряYEAR. -
month— значение, используемое для установки поля календаряMONTH. Нумерация месяцев начинается с 0. Например, 0 соответствует январю. -
dayOfMonth— значение, используемое для установки поля календаряDAY_OF_MONTH. -
hourOfDay— значение, используемое для установки поля календаряHOUR_OF_DAY. -
minute— значение, используемое для установки поля календаряMINUTE. -
second— значение, используемое для установки поля календаряSECOND.
Подробное описание методов
setGregorianChange
public void setGregorianChange(Date date)
GregorianCalendar. Это момент перехода с юлианского календаря на григорианский. По умолчанию это 15 октября 1582 года (по григорианскому календарю). До этой даты даты относятся к юлианскому календарю. Чтобы использовать исключительно юлианский календарь, установите дату перехода в Date(Long.MAX_VALUE). Чтобы использовать исключительно григорианский календарь, установите дату перехода в Date(Long.MIN_VALUE).
- Параметры:
-
date— указанная дата перехода на григорианский календарь.
getGregorianChange
public final Date getGregorianChange()
- Возвращает:
- дату перехода на григорианский календарь для этого объекта
GregorianCalendar.
isLeapYear
public boolean isLeapYear(int year)
true, если указанный год високосный. Чтобы указать год до нашей эры, необходимо передать 1 - year number. Например, год 4 до н. э. задается как -3.- Параметры:
-
year— указанный год. - Возвращает:
-
true, если указанный год високосный; в противном случае —false.
getCalendarType
public String getCalendarType()
"gregory" в качестве типа календаря.- Переопределяет:
-
getCalendarTypeв классеCalendar - Возвращает:
"gregory"- Начиная с версии:
- 1.8
- См. также:
equals
public boolean equals(Object obj)
GregorianCalendar с указанным Object. Результат равен true тогда и только тогда, когда аргумент является объектом GregorianCalendar, представляющим то же значение времени (смещение в миллисекундах относительно начала отсчета) при тех же параметрах Calendar и той же дате перехода на григорианский календарь, что и этот объект.hashCode
add
public void add(int field, int amount)
Правило сложения 1. Значение field после вызова минус значение field до вызова равно amount с учетом переполнения, произошедшего в field. Переполнение происходит, когда значение поля выходит за пределы своего диапазона, в результате чего значение следующего большего поля увеличивается или уменьшается, а значение поля корректируется так, чтобы снова попасть в свой диапазон.
Правило сложения 2. Если ожидается, что значение меньшего поля останется неизменным, но из-за изменения его минимального или максимального значения после изменения field оно не может совпадать с прежним значением, то значение корректируется так, чтобы максимально приблизить его к ожидаемому. Меньшее поле соответствует меньшей единице времени. HOUR — меньшее поле, чем DAY_OF_MONTH. Корректировка не выполняется для меньших полей, значения которых не должны оставаться неизменными. Какие поля должны оставаться неизменными, определяется системой календаря.
- Определен в:
-
addв классеCalendar - Параметры:
-
field— поле календаря. -
amount— количество даты или времени, добавляемое к полю. - Вызывает исключение:
-
IllegalArgumentException— еслиfieldравноZONE_OFFSET,DST_OFFSETили неизвестно, либо если значения каких-либо полей календаря выходят за допустимые пределы в строгом режиме. - См. также:
roll
public void roll(int field, boolean up)
Пример: Рассмотрим объект GregorianCalendar, изначально установленный на 31 декабря 1999 года. Вызов roll(Calendar.MONTH, true) устанавливает дату календаря на 31 января 1999 года. Поле YEAR не изменяется, поскольку оно имеет более высокий порядок, чем MONTH.
- Определен в:
-
rollв классеCalendar - Параметры:
-
field— поле времени. -
up— указывает, следует ли увеличить или уменьшить значение указанного поля календаря. Используйтеtrueдля увеличения иfalseдля уменьшения. - Вызывает исключение:
-
IllegalArgumentException— еслиfieldравноZONE_OFFSET,DST_OFFSETили неизвестно, либо если значения каких-либо полей календаря выходят за допустимые пределы в строгом режиме. - См. также:
roll
public void roll(int field, int amount)
Перед добавлением значения этот метод вызывает Calendar.complete(), чтобы нормализовать все поля календаря. Если в строгом режиме значение какого-либо поля календаря выходит за допустимые пределы, генерируется IllegalArgumentException.
Пример: Рассмотрим объект GregorianCalendar, изначально установленный на 31 августа 1999 года. Вызов roll(Calendar.MONTH,
8) устанавливает дату календаря на 30 апреля 1999 года. В GregorianCalendar поле DAY_OF_MONTH не может иметь значение 31 в апреле. DAY_OF_MONTH устанавливается в ближайшее возможное значение — 30. Поле YEAR сохраняет значение 1999, поскольку имеет более высокий порядок, чем MONTH.
Пример: Рассмотрим объект GregorianCalendar, изначально установленный на воскресенье, 6 июня 1999 года. Вызов roll(Calendar.WEEK_OF_MONTH, -1) устанавливает дату календаря на вторник, 1 июня 1999 года, тогда как вызов add(Calendar.WEEK_OF_MONTH, -1) устанавливает дату календаря на воскресенье, 30 мая 1999 года. Это происходит потому, что правило прокрутки вводит дополнительное ограничение: MONTH не должно изменяться при прокрутке WEEK_OF_MONTH. В сочетании с правилом сложения 1 итоговая дата должна находиться в диапазоне от вторника, 1 июня, до субботы, 5 июня. Согласно правилу сложения 2, DAY_OF_WEEK, которое остается неизменным при изменении WEEK_OF_MONTH, устанавливается на вторник — ближайшее возможное значение к воскресенью (где воскресенье является первым днем недели).
- Переопределяет:
-
rollв классеCalendar - Параметры:
-
field— поле календаря. -
amount— знаковое значение, добавляемое кfield. - Вызывает исключение:
-
IllegalArgumentException— еслиfieldравноZONE_OFFSET,DST_OFFSETили неизвестно, либо если значения каких-либо полей календаря выходят за допустимые пределы в строгом режиме. - Начиная с версии:
- 1.2
- См. также:
getMinimum
public int getMinimum(int field)
GregorianCalendar. Минимальное значение определяется как наименьшее значение, возвращаемое методом get для любого возможного значения времени с учетом текущих значений методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone.- Определен в:
-
getMinimumв классеCalendar - Параметры:
-
field— поле календаря. - Возвращает:
- минимальное значение указанного поля календаря.
- См. также:
getMaximum
public int getMaximum(int field)
GregorianCalendar. Максимальное значение определяется как наибольшее значение, возвращаемое методом get для любого возможного значения времени с учетом текущих значений методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone.- Определен в:
-
getMaximumв классеCalendar - Параметры:
-
field— поле календаря. - Возвращает:
- максимальное значение указанного поля календаря.
- См. также:
getGreatestMinimum
public int getGreatestMinimum(int field)
GregorianCalendar. Наибольшее минимальное значение определяется как наибольшее значение, возвращаемое методом getActualMinimum(int) для любого возможного значения времени с учетом текущих значений методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone.- Определен в:
-
getGreatestMinimumв классеCalendar - Параметры:
-
field— поле календаря. - Возвращает:
- наибольшее минимальное значение указанного поля календаря.
- См. также:
getLeastMaximum
public int getLeastMaximum(int field)
GregorianCalendar. Наименьшее максимальное значение определяется как наименьшее значение, возвращаемое методом getActualMaximum(int) для любого возможного значения времени с учетом текущих значений методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone.- Определен в:
-
getLeastMaximumв классеCalendar - Параметры:
-
field— поле календаря - Возвращает:
- наименьшее максимальное значение указанного поля календаря.
- См. также:
getActualMinimum
public int getActualMinimum(int field)
getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone. Например, если дата перехода на григорианский календарь — 10 января 1970 года, а дата этого объекта GregorianCalendar — 20 января 1970 года, фактическое минимальное значение поля DAY_OF_MONTH равно 10, поскольку предыдущей датой перед 10 января 1970 года является 27 декабря 1996 года (по юлианскому календарю). Таким образом, дат с 28 декабря 1969 года по 9 января 1970 года не существует.
- Переопределяет:
-
getActualMinimumв классеCalendar - Параметры:
-
field— поле календаря - Возвращает:
- минимальное значение указанного поля для значения времени этого объекта
GregorianCalendar - Начиная с версии:
- 1.2
- См. также:
getActualMaximum
public int getActualMaximum(int field)
getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone. Например, если дата этого экземпляра — 1 февраля 2004 года, фактическое максимальное значение поля DAY_OF_MONTH равно 29, поскольку 2004 год високосный; если же дата этого экземпляра — 1 февраля 2005 года, оно равно 28. Этот метод вычисляет максимальное значение WEEK_OF_YEAR на основе значения YEAR (календарного года), а не года недели. Чтобы получить максимальное значение
WEEK_OF_YEAR для года недели этого объекта GregorianCalendar, вызовите getWeeksInWeekYear().
- Переопределяет:
-
getActualMaximumв классеCalendar - Параметры:
-
field— поле календаря - Возвращает:
- максимальное значение указанного поля для значения времени этого объекта
GregorianCalendar - Начиная с версии:
- 1.2
- См. также:
isWeekDateSupported
public final boolean isWeekDateSupported()
true, указывающее, что этот объект GregorianCalendar поддерживает даты в формате недель.- Переопределяет:
-
isWeekDateSupportedв классеCalendar - Возвращает:
-
true(всегда) - Начиная с версии:
- 1.7
- См. также:
getWeekYear
public int getWeekYear()
GregorianCalendar. Даты в неделях от 1-й до последней недели года недели имеют одно и то же значение года недели, которое может быть на год раньше или позже значения YEAR (календарного года). Перед вычислением года недели этот метод вызывает Calendar.complete().
- Переопределяет:
-
getWeekYearв классеCalendar - Возвращает:
- год недели, представленный этим объектом
GregorianCalendar. Если значениеERAравноBC, год представляется нулем или отрицательным числом: 1 год до н. э. — это 0, 2 год до н. э. — -1, 3 год до н. э. — -2 и так далее. - Вызывает исключение:
-
IllegalArgumentException— если в строгом режиме какое-либо поле календаря имеет недопустимое значение. - Начиная с версии:
- 1.7
- См. также:
setWeekDate
public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)
GregorianCalendar дату, заданную следующими компонентами: weekYear, weekOfYear и dayOfWeek. weekOfYear соответствует нумерации WEEK_OF_YEAR. Значение dayOfWeek должно быть одним из значений DAY_OF_WEEK: от SUNDAY до SATURDAY. Обратите внимание, что числовое представление дня недели отличается от стандарта ISO 8601, а нумерация weekOfYear совместима со стандартом, если
getFirstDayOfWeek() равно MONDAY, а
getMinimalDaysInFirstWeek() равно 4.
В отличие от метода set, при возврате из метода вычисляются все поля календаря и значение момента времени.
Если weekOfYear выходит за допустимый диапазон номеров недель года в weekYear, значения weekYear и weekOfYear корректируются в нестрогом режиме, либо в строгом режиме генерируется IllegalArgumentException.
- Переопределяет:
-
setWeekDateв классеCalendar - Параметры:
-
weekYear— год недели -
weekOfYear— номер недели, рассчитанный на основеweekYear -
dayOfWeek— значение дня недели: одна из констант поляDAY_OF_WEEK:SUNDAY, ...,SATURDAY. - Вызывает исключение:
-
IllegalArgumentException— если какой-либо из указанных компонентов даты недопустим или если в строгом режиме какие-либо поля календаря несовместимы с указанными компонентами даты - Начиная с версии:
- 1.7
- См. также:
getWeeksInWeekYear
public int getWeeksInWeekYear()
GregorianCalendar. Например, если дата этого GregorianCalendar — 31 декабря 2008 года, а используется настройка, совместимая с ISO 8601, этот метод вернёт 53 для периода с 29 декабря 2008 года по 3 января 2010 года, тогда как getActualMaximum(WEEK_OF_YEAR) вернёт 52 для периода с 31 декабря 2007 года по 28 декабря 2008 года.
- Переопределяет:
-
getWeeksInWeekYearв классеCalendar - Возвращает:
- количество недель в недельном году.
- Начиная с:
- 1.7
- См. также:
computeFields
protected void computeFields()
complete.- Определён в:
-
computeFieldsв классеCalendar - См. также:
computeTime
protected void computeTime()
- Определён в:
-
computeTimeв классеCalendar - Выбрасывает:
-
IllegalArgumentException— если какое-либо поле календаря содержит недопустимое значение. - См. также:
toZonedDateTime
public ZonedDateTime toZonedDateTime()
ZonedDateTime, представляющий ту же точку на временной шкале, что и этот GregorianCalendar. Поскольку этот объект поддерживает дату перехода с юлианского календаря на григорианский, а ZonedDateTime — нет, значения года, месяца и дня в результате могут отличаться. Результат будет представлять правильную дату в системе календаря ISO, которая также будет иметь то же значение в модифицированных юлианских днях.
- Возвращает:
- объект даты и времени с часовым поясом, представляющий ту же точку на временной шкале, что и этот григорианский календарь
- Начиная с:
- 1.8
from
public static GregorianCalendar from(ZonedDateTime zdt)
GregorianCalendar с локалью по умолчанию на основе объекта ZonedDateTime. Поскольку ZonedDateTime не поддерживает дату перехода с юлианского календаря на григорианский и использует систему календаря ISO, возвращаемый GregorianCalendar является чисто григорианским календарём и использует стандарт ISO 8601 для определения недель: в нём MONDAY является значением FirstDayOfWeek, а 4 — значением MinimalDaysInFirstWeek.
ZoneDateTime может хранить точки на временной шкале, расположенные дальше в будущем и прошлом, чем GregorianCalendar. В этом случае данный метод выбросит исключение IllegalArgumentException.
- Параметры:
-
zdt— объект даты и времени с часовым поясом для преобразования - Возвращает:
- григорианский календарь, представляющий ту же точку на временной шкале, что и переданный объект даты и времени с часовым поясом
- Выбрасывает:
-
NullPointerException— еслиzdtравен null -
IllegalArgumentException— если дата и время с часовым поясом слишком велики для представления в видеGregorianCalendar - Начиная с:
- 1.8
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.