Класс 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 января. Недели между неделей 1 одного года и неделей 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), то неделя 1 1998 года начинается 29 декабря 1997 года и заканчивается 4 января 1998 года. Год недели — 1998 для последних трех дней календарного года 1997. Однако, если getFirstDayOfWeek() равно SUNDAY, то неделя 1 1998 года начинается 4 января 1998 года и заканчивается 10 января 1998 года; первые три дня 1998 года входят в неделя 53 1997 года, и их год недели — 1997.
Неделя месяца
Значения, вычисляемые для поля WEEK_OF_MONTH изменяются от 0 до 6. Неделя 1 месяца (дни с WEEK_OF_MONTH =
1) — это самый ранний набор по меньшей мере getMinimalDaysInFirstWeek() последовательных дней в этом месяце, заканчивающийся днем перед getFirstDayOfWeek(). В отличие от недели 1 года, неделя 1 месяца может быть короче 7 дней, не обязательно начинаться с getFirstDayOfWeek(), и не будет включать дни предыдущего месяца. Дни месяца до недели 1 имеют значение 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
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.util.Calendar
Calendar.Builder
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
AD |
Значение поля ERA, указывающего на общую эру (Anno Domini), также известную как CE. |
static final int |
BC |
Значение поля ERA, указывающего на период до общей эры (до Рождества Христова), также известный как BCE. |
Поля, объявленные в классе java.util.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. |
Методы, объявленные в классе java.util.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, указывающее на период до нашей эры (до Рождества Христова), также известный как до н.э. Последовательность годов при переходе от BC к AD выглядит так: ..., 2 до н.э., 1 до н.э., 1 н.э., 2 н.э., ...- См. также:
AD
public static final int AD
ERA, указывающее на период нашей эры (Anno Domini), также известный как н.э. Последовательность годов при переходе от BC к AD выглядит так: ..., 2 до н.э., 1 до н.э., 1 н.э., 2 н.э., ...- См. также:
Подробное описание конструкторов
GregorianCalendar
public GregorianCalendar()
GregorianCalendar, используя текущее время в часовом поясе по умолчанию и локаль FORMAT по умолчанию.GregorianCalendar
public GregorianCalendar(TimeZone zone)
GregorianCalendar на основе текущего времени в заданном часовом поясе и локали FORMAT по умолчанию.- Параметры:
-
zone- заданный часовой пояс.
GregorianCalendar
public GregorianCalendar(Locale aLocale)
GregorianCalendar на основе текущего времени в часовом поясе по умолчанию и заданной локали.- Параметры:
-
aLocale- заданная локаль.
GregorianCalendar
public GregorianCalendar(TimeZone zone, Locale aLocale)
GregorianCalendar на основе текущего времени в заданном часовом поясе и заданной локали.- Параметры:
-
zone- заданный часовой пояс. -
aLocale- заданная локаль.
GregorianCalendar
public GregorianCalendar(int year, int month, int dayOfMonth)
GregorianCalendar с заданной датой в часовом поясе по умолчанию и локали по умолчанию.- Параметры:
-
year- значение, используемое для установки поляYEARкалендаря. -
month- значение, используемое для установки поляMONTHкалендаря. Значение месяца задаётся от 0 до 11. Например, 0 для января. -
dayOfMonth- значение, используемое для установки поляDAY_OF_MONTHкалендаря.
GregorianCalendar
public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
GregorianCalendar с заданной датой и временем в часовом поясе по умолчанию и локали по умолчанию.- Параметры:
-
year- значение, используемое для установки поляYEARкалендаря. -
month- значение, используемое для установки поляMONTHкалендаря. Значение месяца задаётся от 0 до 11. Например, 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 до 11. Например, 0 для января. -
dayOfMonth- значение, используемое для установки поляDAY_OF_MONTHкалендаря. -
hourOfDay- значение, используемое для установки поляHOUR_OF_DAYкалендаря. -
minute- значение, используемое для установки поляMINUTEкалендаря. -
second- значение, используемое для установки поляSECONDкалендаря.
Подробное описание методов
Установка даты перехода на григорианский календарь
public void setGregorianChange(Date date)
Для получения чистого юлианского календаря, установите дату перехода на Date(Long.MAX_VALUE). Для получения чистого григорианского календаря, установите дату перехода на Date(Long.MIN_VALUE).
- Параметры:
-
date- заданная дата перехода на григорианский календарь.
Получение даты перехода на григорианский календарь
public final Date getGregorianChange()
- Возвращает:
- дата перехода на григорианский календарь для этого объекта
GregorianCalendar.
Проверка високосного года
public boolean isLeapYear(int year)
true , если заданный год високосный. Для указания года до нашей эры необходимо использовать отрицательное значение. Например, год до нашей эры 4 указывается как -3.- Параметры:
-
year- заданный год. - Возвращает:
-
true, если заданный год високосный;falseв противном случае.
Получение типа календаря
public String getCalendarType()
"gregory" в качестве типа календаря.- Переопределяет:
-
getCalendarTypeв классеCalendar - Возвращает:
"gregory"- С:
- 1.8
- См. также:
equals
public boolean equals(Object obj)
GregorianCalendar с указанным Object. Результатом является true тогда и только тогда, когда аргумент является объектом GregorianCalendar, представляющим ту же временную метку (смещение в миллисекундах от эпохи Epoch) при тех же параметрах Calendar и дате перехода на григорианский календарь, что и этот объект.- Переопределяет:
-
equalsв классеCalendar - Параметры:
-
obj- объект для сравнения. - Возвращает:
-
true, если этот объект равенobj;falseв противном случае. - См. также:
hashCode
public int hashCode()
GregorianCalendar.- Переопределяет:
-
hashCodeв классеCalendar - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
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 - Параметры:
-
up- указывает, нужно ли увеличивать или уменьшать значение указанного календарного поля. Используйтеtrueдля увеличения,falseв противном случае. -
field- поле времени. - Исключения:
-
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, устанавливается на вторник, как самое близкое возможное значение к воскресенью (где воскресенье является первым днем недели).
- Overrides:
-
rollв классеCalendar - Parameters:
-
field- поле календаря. -
amount- число, которое нужно добавить кfield. - Throws:
-
IllegalArgumentException- еслиfieldимеет значениеZONE_OFFSET,DST_OFFSET, или неизвестное, или если какие-либо поля календаря имеют значения, выходящие за пределы диапазона, в режиме без смягчения. - Since:
- 1.2
- See Also:
getMinimum
public int getMinimum(int field)
GregorianCalendar. Минимальное значение определяется как наименьшее значение, возвращаемое методом get для любого возможного значения времени, с учетом текущих значений методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone.- Specified by:
-
getMinimumв классеCalendar - Parameters:
-
field- поле календаря. - Returns:
- минимальное значение для заданного поля календаря.
- See Also:
getMaximum
public int getMaximum(int field)
GregorianCalendar. Максимальное значение определяется как наибольшее значение, возвращаемое методом get для любого возможного значения времени, с учетом текущих значений методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone.- Specified by:
-
getMaximumв классеCalendar - Parameters:
-
field- поле календаря. - Returns:
- максимальное значение для заданного поля календаря.
- See Also:
getGreatestMinimum
public int getGreatestMinimum(int field)
GregorianCalendar экземпляра. Наибольшее минимальное значение определяется как наибольшее значение, возвращаемое getActualMinimum(int) для любого возможного значения времени, учитывая текущие значения методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone.- Specified by:
-
getGreatestMinimumв классеCalendar - Parameters:
-
field- поле календаря. - Returns:
- наибольшее минимальное значение для заданного поля календаря.
- See Also:
getLeastMaximum
public int getLeastMaximum(int field)
GregorianCalendar экземпляра. Наименьшее максимальное значение определяется как наименьшее значение, возвращаемое getActualMaximum(int) для любого возможного значения времени, учитывая текущие значения методов getFirstDayOfWeek, getMinimalDaysInFirstWeek, getGregorianChange и getTimeZone.- Specified by:
-
getLeastMaximumв классеCalendar - Parameters:
-
field- поле календаря - Returns:
- наименьшее максимальное значение для заданного поля календаря.
- See Also:
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 года не существуют.
- Overrides:
-
getActualMinimumв классеCalendar - Parameters:
-
field- поле календаря - Returns:
- минимальное значение заданного поля для значения времени этого
GregorianCalendar - Since:
- 1.2
- See Also:
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().
- Overrides:
-
getActualMaximumв классеCalendar - Parameters:
-
field- поле календаря - Returns:
- максимальное значение данного поля для значения времени этого
GregorianCalendar - Since:
- 1.2
- See Also:
isWeekDateSupported
public final boolean isWeekDateSupported()
true, указывающее, поддерживает ли этот GregorianCalendar даты недели.- Overrides:
-
isWeekDateSupportedв классеCalendar - Returns:
-
true(всегда) - Since:
- 1.7
- See Also:
getWeekYear
public int getWeekYear()
GregorianCalendar. Даты в неделям с 1 до максимального номера недели года имеют одинаковое значение года недели, которое может быть на год раньше или позже значения YEAR (год календаря). Перед вычислением года недели этот метод вызывает Calendar.complete().
- Overrides:
-
getWeekYearв классеCalendar - Returns:
- год недели, представленный этим
GregorianCalendar. Если значениеERAравноBC, год представлен 0 или отрицательным числом: до н. э. 1 — 0, до н. э. 2 — -1, до н. э. 3 — -2 и т. д. - Throws:
-
IllegalArgumentException- если любое из полей календаря недействительно в режиме без учета ошибок. - Since:
- 1.7
- See Also:
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 в режиме строгой проверки.
- Overrides:
-
setWeekDateв классеCalendar - Parameters:
-
weekYear- год недели -
weekOfYear- номер недели, основанный наweekYear -
dayOfWeek- значение дня недели: одна из констант для поляDAY_OF_WEEK:SUNDAY, ...,SATURDAY. - Throws:
-
IllegalArgumentException- если какой-либо из заданных спецификаторов даты является недопустимым, или если какие-либо поля календаря несовместимы с заданными спецификаторами даты в режиме строгой проверки - Since:
- 1.7
- See Also:
getWeeksInWeekYear
public int getWeeksInWeekYear()
GregorianCalendar. Например, если дата этой GregorianCalendar — 31 декабря 2008 года, при настройке совместимости с ISO 8601 этот метод вернет 53 для периода: с 29 декабря 2008 года по 3 января 2010 года, тогда как getActualMaximum(WEEK_OF_YEAR) вернет 52 для периода: с 31 декабря 2007 года по 28 декабря 2008 года.
- Overrides:
-
getWeeksInWeekYearв классеCalendar - Returns:
- количество недель в году недели.
- Since:
- 1.7
- See Also:
computeFields
protected void computeFields()
complete. - Specified by:
-
computeFieldsв классеCalendar - See Also:
computeTime
protected void computeTime()
- Specified by:
-
computeTimeв классеCalendar - Throws:
-
IllegalArgumentException- если какие-либо поля календаря являются недопустимыми. - See Also:
toZonedDateTime
public ZonedDateTime toZonedDateTime()
ZonedDateTime, который представляет ту же точку на временной шкале, что и этот GregorianCalendar. Поскольку этот объект поддерживает переход между юлианским и григорианским календарями, а ZonedDateTime — нет, возможно, что результирующий год, месяц и день будут иметь разные значения. Результат будет представлять правильную дату в системе ISO-календаря, которая также будет иметь то же значение для модифицированных юлианских дней.
- Returns:
- объект zoned date-time, представляющий ту же точку на временной шкале, что и этот григорианский календарь
- Since:
- 1.8
from
public static GregorianCalendar from(ZonedDateTime zdt)
GregorianCalendar с локалью по умолчанию из объекта ZonedDateTime. Поскольку ZonedDateTime не поддерживает переход от юлианского к григорианскому календарю и использует систему календаря ISO, возвращаемый GregorianCalendar является чисто григорианским календарем и использует стандарт ISO 8601 для определения недель, у которого MONDAY является FirstDayOfWeek и 4 - значение MinimalDaysInFirstWeek.
ZoneDateTime может хранить точки на временной шкале дальше в будущем и дальше в прошлом, чем GregorianCalendar. В этом случае этот метод будет выбрасывать исключение IllegalArgumentException.
- Parameters:
-
zdt- объект zoned date-time для преобразования - Returns:
- gregorian календарь, представляющий ту же точку на временной шкале, что и предоставленный zoned date-time
- Throws:
-
NullPointerException- еслиzdtимеет значение null -
IllegalArgumentException- если zoned date-time слишком велик для представления в видеGregorianCalendar - Since:
- 1.8
© 1993, 2021, 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/17/docs/api/java.base/java/util/GregorianCalendar.html