Класс 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 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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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
Подробное описание полей
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. Даты в неделях от первой до недели с максимальным номером в году недели имеют одно и то же значение года недели, которое может быть на год меньше или больше значения 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/GregorianCalendar.html