日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSGregorianCalendar

GregorianCalendar

java.lang.Object

|---java.util.Calendar

|---|---java.util.GregorianCalendar

public class GregorianCalendar
extends Calendar

GregorianCalendar 是 Calendar 的一個(gè)具體子類,并提供世界上大多數(shù)地方使用的標(biāo)準(zhǔn)日歷系統(tǒng)。

GregorianCalendar 是一種混合日歷,它同時(shí)支持儒略歷和公歷系統(tǒng),并支持單個(gè)不連續(xù)性,默認(rèn)情況下對(duì)應(yīng)于公歷制定時(shí)的公歷日期(在某些國(guó)家/地區(qū)為 1582 年 10 月 15 日,在其他國(guó)家/地區(qū)較晚)。 調(diào)用者可以通過(guò)調(diào)用 setGregorianChange() 來(lái)更改切換日期。

從歷史上看,在那些首先采用公歷的國(guó)家中,1582 年 10 月 4 日(儒略歷)隨后是 1582 年 10 月 15 日(公歷)。 這個(gè)日歷正確地模擬了這一點(diǎn)。 在公歷轉(zhuǎn)換之前,GregorianCalendar 實(shí)現(xiàn)了儒略歷。 公歷和儒略歷之間的唯一區(qū)別是閏年規(guī)則。 儒略歷每四年指定閏年,而公歷省略不能被 400 整除的世紀(jì)年。

GregorianCalendar 實(shí)現(xiàn)了預(yù)測(cè)的公歷和儒略歷。 也就是說(shuō),日期是通過(guò)無(wú)限期地向后和向前推斷當(dāng)前規(guī)則來(lái)計(jì)算的。 因此,GregorianCalendar 可用于所有年份以生成有意義且一致的結(jié)果。 然而,使用 GregorianCalendar 獲得的日期僅在公元 4 年 3 月 1 日之后才具有歷史準(zhǔn)確度,當(dāng)時(shí)采用了現(xiàn)代儒略歷規(guī)則。 在此日期之前,閏年規(guī)則的應(yīng)用不規(guī)律,而在公元前 45 年之前,儒略歷甚至都不存在。

在公歷制度制定之前,元旦是 3 月 25 日。為避免混淆,此日歷始終使用 1 月 1 日。如果需要,可以手動(dòng)調(diào)整公歷轉(zhuǎn)換之前的日期和 1 月 1 日之間的日期 和 3 月 24 日。

一年中的一周和一周年

為 Calendar#WEEK_OF_YEAR 字段計(jì)算的值范圍為 1 到 53。日歷年的第一周是從 Calendar#getFirstDayOfWeek() 開始的最早的 7 天時(shí)間段,其中至少包含該年的 Calendar#getMinimalDaysInFirstWeek() 天。 因此,它取決于 getMinimalDaysInFirstWeek()、getFirstDayOfWeek() 和 1 月 1 日的星期幾的值。一年的第 1 周和下一年的第 1 周(不包括)之間的周數(shù)從 2 到 52 或 53 年(儒略-格里高利過(guò)渡所涉及的年份除外)。

getFirstDayOfWeek() 和 getMinimalDaysInFirstWeek() 值在構(gòu)造 GregorianCalendar 時(shí)使用與語(yǔ)言環(huán)境相關(guān)的資源進(jìn)行初始化。當(dāng) getFirstDayOfWeek() 為 MONDAY 且 getMinimalDaysInFirstWeek() 為 4 時(shí),星期確定與 ISO 8601 標(biāo)準(zhǔn)兼容,這些值用于首選標(biāo)準(zhǔn)的區(qū)域設(shè)置。這些值可以通過(guò)調(diào)用 Calendar#setFirstDayOfWeek(int) 和 Calendar#setMinimalDaysInFirstWeek(int) 顯式設(shè)置。

一周年與 WEEK_OF_YEAR 周期同步。第一周和最后一周(含)之間的所有周都具有相同的周年值。因此,一周年的第一天和最后一天可能具有不同的日歷年值。

例如,1998 年 1 月 1 日是星期四。如果 getFirstDayOfWeek() 為 MONDAY 且 getMinimalDaysInFirstWeek() 為 4(ISO 8601 標(biāo)準(zhǔn)兼容設(shè)置),則 1998 年的第 1 周開始于 1997 年 12 月 29 日,結(jié)束于 1998 年 1 月 4 日。最后三天的周年份為 1998 年1997 日歷年。但是,如果 getFirstDayOfWeek() 是 SUNDAY,則 1998 年的第 1 周從 1998 年 1 月 4 日開始,到 1998 年 1 月 10 日結(jié)束; 1998 年的前三天是 1997 年第 53 周的一部分,他們的周年是 1997 年。

每月的一周

為 WEEK_OF_MONTH 字段計(jì)算的值范圍為 0 到 6。一個(gè)月的第 1 周(WEEK_OF_MONTH = 1 的天數(shù))是該月中至少 getMinimalDaysInFirstWeek() 連續(xù)天數(shù)的最早集合,在 getFirstDayOfWeek() 之前的一天結(jié)束。 與一年的第 1 周不同,一個(gè)月的第 1 周可能短于 7 天,不需要從 getFirstDayOfWeek() 開始,并且不包括上個(gè)月的天數(shù)。 第 1 周前一個(gè)月的某天的 WEEK_OF_MONTH 為 0。

例如,如果 getFirstDayOfWeek() 是 SUNDAY,getMinimalDaysInFirstWeek() 是 4,則 1998 年 1 月的第一周是 1 月 4 日星期日到 1 月 10 日星期六。這些天的 WEEK_OF_MONTH 為 1。1 月 1 日星期四到 1 月星期六 3 的 WEEK_OF_MONTH 為 0。如果將 getMinimalDaysInFirstWeek() 更改為 3,則 1 月 1 日至 1 月 3 日的 WEEK_OF_MONTH 為 1。

默認(rèn)字段值

clear 方法將日歷字段設(shè)置為未定義。 如果每個(gè)日歷字段的值未定義,GregorianCalendar 將使用以下默認(rèn)值。

默認(rèn)值不適用于上面未列出的字段。

例子:

 // 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

嵌套類摘要

從類 java.util.Calendar 繼承的嵌套類/接口
Calendar.Builder

字段摘要

修飾符和類型 字段 描述
static int AD 指示共同時(shí)代(Anno Domini)的 ERA 字段的值,也稱為 CE。
static int BC ERA 字段的值表示普通時(shí)代(基督之前)之前的時(shí)期,也稱為 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

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
GregorianCalendar() 使用默認(rèn)時(shí)區(qū)中的當(dāng)前時(shí)間和默認(rèn) Locale.Category#FORMAT 語(yǔ)言環(huán)境構(gòu)造默認(rèn) GregorianCalendar。
GregorianCalendar(int year, int month, int dayOfMonth) 構(gòu)造一個(gè) GregorianCalendar,其給定日期設(shè)置在默認(rèn)時(shí)區(qū)和默認(rèn)語(yǔ)言環(huán)境中。
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 構(gòu)造一個(gè)帶有給定日期和時(shí)間的 GregorianCalendar,該日期和時(shí)間設(shè)置為具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)。
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) 構(gòu)造一個(gè)帶有給定日期和時(shí)間的 GregorianCalendar,該日期和時(shí)間設(shè)置為具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)。
GregorianCalendar(Locale aLocale) 根據(jù)給定語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)中的當(dāng)前時(shí)間構(gòu)造一個(gè) GregorianCalendar。
GregorianCalendar(TimeZone zone) 使用默認(rèn) Locale.Category#FORMAT 區(qū)域設(shè)置基于給定時(shí)區(qū)中的當(dāng)前時(shí)間構(gòu)造 GregorianCalendar。
GregorianCalendar(TimeZone zone, Locale aLocale) 根據(jù)給定區(qū)域設(shè)置的給定時(shí)區(qū)中的當(dāng)前時(shí)間構(gòu)造一個(gè) GregorianCalendar。

方法總結(jié)

修飾符和類型 方法 描述
void add(int field, int amount) 根據(jù)日歷的規(guī)則,將指定(簽名)的時(shí)間量添加到給定的日歷字段。
Object clone() 創(chuàng)建并返回此對(duì)象的副本。
protected void computeFields() 將時(shí)間值(從 Epoch 的毫秒偏移量)轉(zhuǎn)換為日歷字段值。
protected void computeTime() 將日歷字段值轉(zhuǎn)換為時(shí)間值(從 Epoch 開始的毫秒偏移量)。
boolean equals(Object obj) 將此 GregorianCalendar 與指定的 Object 進(jìn)行比較。
static GregorianCalendar from(ZonedDateTime zdt) 從 ZonedDateTime 對(duì)象獲取具有默認(rèn)語(yǔ)言環(huán)境的 GregorianCalendar 實(shí)例。
int getActualMaximum(int field) 返回此日歷字段可能具有的最大值,同時(shí)考慮給定的時(shí)間值和 Calendar#getFirstDayOfWeek()、Calendar#getMinimalDaysInFirstWeek()、getGregorianChange 和 Calendar#getTimeZone() 方法的當(dāng)前值。
int getActualMinimum(int field) 返回此日歷字段可能具有的最小值,同時(shí)考慮給定的時(shí)間值和 Calendar#getFirstDayOfWeek()、Calendar#getMinimalDaysInFirstWeek()、getGregorianChange 和 Calendar#getTimeZone() 方法的當(dāng)前值。
String getCalendarType() 返回“gregory”作為日歷類型。
int getGreatestMinimum(int field) 返回此 GregorianCalendar 實(shí)例的給定日歷字段的最大最小值。
Date getGregorianChange() 獲取公歷更改日期。
int getLeastMaximum(int field) 返回此 GregorianCalendar 實(shí)例的給定日歷字段的最低最大值。
int getMaximum(int field) 返回此 GregorianCalendar 實(shí)例的給定日歷字段的最大值。
int getMinimum(int field) 返回此 GregorianCalendar 實(shí)例的給定日歷字段的最小值。
TimeZone getTimeZone() 獲取時(shí)區(qū)。
int getWeeksInWeekYear() 返回此 GregorianCalendar 表示的一周年中的周數(shù)。
int getWeekYear() 返回此 GregorianCalendar 表示的周年。
int hashCode() 生成此 GregorianCalendar 對(duì)象的哈希碼。
boolean isLeapYear(int year) 確定給定年份是否為閏年。
boolean isWeekDateSupported() 返回 true 表示此 GregorianCalendar 支持星期日期。
void roll(int field, boolean up) 在給定時(shí)間字段上添加或減去(上/下)單個(gè)時(shí)間單位,而不更改更大的字段。
void roll(int field, int amount) 將簽名金額添加到指定的日歷字段而不更改更大的字段。
void setGregorianChange(Date date) 設(shè)置 GregorianCalendar 更改日期。
void setTimeZone(TimeZone zone) 使用給定的時(shí)區(qū)值設(shè)置時(shí)區(qū)。
void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) 將此 GregorianCalendar 設(shè)置為日期說(shuō)明符給出的日期 - weekYear、weekOfYear 和 dayOfWeek。
ZonedDateTime toZonedDateTime() 將此對(duì)象轉(zhuǎn)換為 ZonedDateTime,它表示時(shí)間線上與此 GregorianCalendar 相同的點(diǎn)。
從類 java.util.Calendar 繼承的方法
after, before, clear, clear, compareTo, complete, get, getAvailableCalendarTypes, getAvailableLocales, getDisplayName, getDisplayNames, getFirstDayOfWeek, getInstance, getInstance, getInstance, getInstance, getMinimalDaysInFirstWeek, getTime, getTimeInMillis, internalGet, isLenient, isSet, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, toInstant, toString
從類 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait

字段詳細(xì)信息

AD

public static final int AD

指示共同時(shí)代(Anno Domini)的 ERA 字段的值,也稱為 CE。 從公元前到公元過(guò)渡的年份順序是......,公元前2年,公元前1年,公元1年,公元2年,......

BC

public static final int BC

ERA 字段的值表示普通時(shí)代(基督之前)之前的時(shí)期,也稱為 BCE。 從公元前到公元過(guò)渡的年份順序是......,公元前2年,公元前1年,公元1年,公元2年,......

構(gòu)造函數(shù)詳細(xì)信息

GregorianCalendar

public GregorianCalendar()

使用默認(rèn)時(shí)區(qū)中的當(dāng)前時(shí)間和默認(rèn) Locale.Category#FORMAT 語(yǔ)言環(huán)境構(gòu)造默認(rèn) GregorianCalendar。

GregorianCalendar

public GregorianCalendar(TimeZone zone)

使用默認(rèn) Locale.Category#FORMAT 區(qū)域設(shè)置基于給定時(shí)區(qū)中的當(dāng)前時(shí)間構(gòu)造 GregorianCalendar。

參數(shù):

參數(shù)名稱 參數(shù)描述
zone 給定的時(shí)區(qū)。

GregorianCalendar

public GregorianCalendar(Locale aLocale)

根據(jù)給定語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)中的當(dāng)前時(shí)間構(gòu)造一個(gè) GregorianCalendar。

參數(shù):

參數(shù)名稱 參數(shù)描述
aLocale 給定的語(yǔ)言環(huán)境。

GregorianCalendar

public GregorianCalendar(TimeZone zone, Locale aLocale)

根據(jù)給定區(qū)域設(shè)置的給定時(shí)區(qū)中的當(dāng)前時(shí)間構(gòu)造一個(gè) GregorianCalendar。

參數(shù):

參數(shù)名稱 參數(shù)描述
zone 給定的時(shí)區(qū)。
aLocale 給定的語(yǔ)言環(huán)境。

GregorianCalendar

public GregorianCalendar(int year, int month, int dayOfMonth)

構(gòu)造一個(gè) GregorianCalendar,其給定日期設(shè)置在默認(rèn)時(shí)區(qū)和默認(rèn)語(yǔ)言環(huán)境中。

參數(shù):

參數(shù)名稱 參數(shù)描述
year 用于設(shè)置日歷中 YEAR 日歷字段的值。
month 用于設(shè)置日歷中 MONTH 日歷字段的值。 月份值從 0 開始。 例如,0 表示一月。
dayOfMonth 用于設(shè)置日歷中 DAY_OF_MONTH 日歷字段的值。

GregorianCalendar

public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)

構(gòu)造一個(gè)帶有給定日期和時(shí)間的 GregorianCalendar,該日期和時(shí)間設(shè)置為具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)。

參數(shù):

參數(shù)名稱 參數(shù)描述
year 用于設(shè)置日歷中 YEAR 日歷字段的值。
month 用于設(shè)置日歷中 MONTH 日歷字段的值。 月份值從 0 開始。 例如,0 表示一月。
dayOfMonth 用于設(shè)置日歷中 DAY_OF_MONTH 日歷字段的值。
hourOfDay 用于設(shè)置日歷中 HOUR_OF_DAY 日歷字段的值。
minute 用于設(shè)置日歷中 MINUTE 日歷字段的值。

GregorianCalendar

public GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)

構(gòu)造一個(gè)帶有給定日期和時(shí)間的 GregorianCalendar,該日期和時(shí)間設(shè)置為具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)。

參數(shù):

參數(shù)名稱 參數(shù)描述
year 用于設(shè)置日歷中 YEAR 日歷字段的值。
month 用于設(shè)置日歷中 MONTH 日歷字段的值。 月份值從 0 開始。 例如,0 表示一月。
dayOfMonth 用于設(shè)置日歷中 DAY_OF_MONTH 日歷字段的值。
hourOfDay 用于設(shè)置日歷中 HOUR_OF_DAY 日歷字段的值。
minute 用于設(shè)置日歷中 MINUTE 日歷字段的值。
second 用于在日歷中設(shè)置 SECOND 日歷字段的值。

方法詳情

setGregorianChange

public void setGregorianChange(Date date)

設(shè)置 GregorianCalendar 更改日期。 這是從儒略日期轉(zhuǎn)換為公歷日期的時(shí)間點(diǎn)。 默認(rèn)值為 1582 年 10 月 15 日(公歷)。 在此之前,日期將采用儒略歷。

要獲取純?nèi)迓詺v,請(qǐng)將更改日期設(shè)置為 Date(Long.MAX_VALUE)。 要獲取純公歷,請(qǐng)將更改日期設(shè)置為 Date(Long.MIN_VALUE)。

參數(shù):

參數(shù)名稱 參數(shù)描述
date 給定的公歷截止日期。

getGregorianChange

public final Date getGregorianChange()

獲取公歷更改日期。 這是從儒略日期轉(zhuǎn)換為公歷日期的時(shí)間點(diǎn)。 默認(rèn)值為 1582 年 10 月 15 日(公歷)。 在此之前,日期將采用儒略歷。

返回:

此 GregorianCalendar 對(duì)象的公歷截止日期。

isLeapYear

public boolean isLeapYear(int year)

確定給定年份是否為閏年。 如果給定年份是閏年,則返回 true。 要指定 BC 年編號(hào),必須給出 1 年編號(hào)。 例如,公元前 4 年指定為 -3。

參數(shù):

參數(shù)名稱 參數(shù)描述
year 給定的年份。

返回:

如果給定年份是閏年,則為 true; 否則為 false。

getCalendarType

public String getCalendarType()

返回“gregory”作為日歷類型。

覆蓋:

類 Calendar 中的 getCalendarType

返回:

“gregory”

equals

public boolean equals(Object obj)

將此 GregorianCalendar 與指定的 Object 進(jìn)行比較。 當(dāng)且僅當(dāng)參數(shù)是一個(gè) GregorianCalendar 對(duì)象,該對(duì)象表示與該對(duì)象相同的日歷參數(shù)和公歷更改日期下的相同時(shí)間值(從 Epoch 的毫秒偏移量)時(shí),結(jié)果才為true。

覆蓋:

等于日歷類

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 比較的對(duì)象。

返回:

如果此對(duì)象等于 obj,則為 true; 否則為 false。

hashCode

public int hashCode()

生成此 GregorianCalendar 對(duì)象的哈希碼。

覆蓋:

類 Calendar 中的 hashCode

返回:

此對(duì)象的哈希碼值。

add

public void add(int field, int amount)

根據(jù)日歷的規(guī)則,將指定(簽名)的時(shí)間量添加到給定的日歷字段。

添加規(guī)則1。調(diào)用后的字段值減去調(diào)用前的字段值是金額,以字段中發(fā)生的任何溢出為模。 當(dāng)字段值超出其范圍時(shí)會(huì)發(fā)生溢出,因此,下一個(gè)較大的字段會(huì)遞增或遞減,并且字段值會(huì)調(diào)整回其范圍內(nèi)。

增加規(guī)則2,如果一個(gè)較小的字段期望是不變的,但是由于字段改變后它的最小值或最大值發(fā)生了變化,使得它不可能等于它的先前值,那么它的值被調(diào)整為盡可能接近 可能達(dá)到其預(yù)期值。 較小的字段表示較小的時(shí)間單位。 HOUR 是比 DAY_OF_MONTH 小的字段。 不對(duì)預(yù)期不會(huì)保持不變的較小字段進(jìn)行任何調(diào)整。 日歷系統(tǒng)確定哪些字段預(yù)計(jì)是不變的。

指定者:

添加日歷類

參數(shù):

參數(shù)名稱 參數(shù)描述
field 日歷字段。
amount 要添加到字段的日期或時(shí)間量。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果字段是 ZONE_OFFSET、DST_OFFSET 或未知,或者如果任何日歷字段在非寬松模式下具有超出范圍的值。

roll

public void roll(int field, boolean up)

在給定時(shí)間字段上添加或減去(上/下)單個(gè)時(shí)間單位,而不更改更大的字段。

示例:考慮最初設(shè)置為 1999 年 12 月 31 日的 GregorianCalendar。調(diào)用 roll(Calendar.MONTH, true) 將日歷設(shè)置為 1999 年 1 月 31 日。YEAR 字段未更改,因?yàn)樗?MONTH 更大。

指定者:

滾動(dòng)日歷類

參數(shù):

參數(shù)名稱 參數(shù)描述
up 指示指定日歷字段的值是向上滾動(dòng)還是向下滾動(dòng)。 如果向上滾動(dòng)則使用 true,否則使用 false。
field 時(shí)間字段。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果字段是 ZONE_OFFSET、DST_OFFSET 或未知,或者如果任何日歷字段在非寬松模式下具有超出范圍的值。

roll

public void roll(int field, int amount)

將簽名金額添加到指定的日歷字段而不更改更大的字段。負(fù)滾動(dòng)量意味著從字段中減去而不更改更大的字段。如果指定數(shù)量為 0,則此方法不執(zhí)行任何操作。

此方法在添加金額之前調(diào)用 Calendar.complete() 以便對(duì)所有日歷字段進(jìn)行規(guī)范化。如果在非寬松模式下任何日歷字段的值超出范圍,則拋出 IllegalArgumentException。

示例:假設(shè)一個(gè) GregorianCalendar 最初設(shè)置為 1999 年 8 月 31 日。調(diào)用 roll(Calendar.MONTH, 8) 將日歷設(shè)置為 1999 年 4 月 30 日。使用 GregorianCalendar,DAY_OF_MONTH 字段在 4 月份不能為 31。 DAY_OF_MONTH 設(shè)置為最接近的可能值 30。YEAR 字段保持 1999 的值,因?yàn)樗?MONTH 更大。

示例:考慮最初設(shè)置為 1999 年 6 月 6 日星期日的 GregorianCalendar。調(diào)用 roll(Calendar.WEEK_OF_MONTH, -1) 將日歷設(shè)置為 1999 年 6 月 1 日星期二,而調(diào)用 add(Calendar.WEEK_OF_MONTH, -1) 將日歷設(shè)置為星期日1999 年 5 月 30 日。這是因?yàn)闈L動(dòng)規(guī)則施加了額外的約束:滾動(dòng) WEEK_OF_MONTH 時(shí),MONTH 不得更改。與添加規(guī)則 1 一起,結(jié)果日期必須在 6 月 1 日星期二和 6 月 5 日星期六之間。根據(jù)添加規(guī)則 2,DAY_OF_WEEK 是更改 WEEK_OF_MONTH 時(shí)的不變量,設(shè)置為星期二,最接近星期日的可能值(其中星期日是一周的第一天)。

覆蓋:

滾動(dòng)日歷類

參數(shù):

參數(shù)名稱 參數(shù)描述
field 日歷字段。
amount 要添加到字段的簽名金額。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果字段是 ZONE_OFFSET、DST_OFFSET 或未知,或者如果任何日歷字段在非寬松模式下具有超出范圍的值。

getMinimum

public int getMinimum(int field)

返回此 GregorianCalendar 實(shí)例的給定日歷字段的最小值。 最小值定義為 Calendar#get(int) 方法針對(duì)任何可能的時(shí)間值返回的最小值,同時(shí)考慮到 Calendar#getFirstDayOfWeek()、Calendar#getMinimalDaysInFirstWeek()、getGregorianChange 和 Calendar#getTimeZone 的當(dāng)前值 () 方法。

指定者:

日歷類中的getMinimum

參數(shù):

參數(shù)名稱 參數(shù)描述
field 日歷字段。

返回:

給定日歷字段的最小值。

getMaximum

public int getMaximum(int field)

返回此 GregorianCalendar 實(shí)例的給定日歷字段的最大值。 最大值定義為 Calendar#get(int) 方法針對(duì)任何可能的時(shí)間值返回的最大值,同時(shí)考慮到 Calendar#getFirstDayOfWeek()、Calendar#getMinimalDaysInFirstWeek()、getGregorianChange 和 Calendar#getTimeZone 的當(dāng)前值 () 方法。

指定者:

日歷類中的getMaximum

參數(shù):

參數(shù)名稱 參數(shù)描述
field 日歷字段。

返回:

給定日歷字段的最大值。

getGreatestMinimum

public int getGreatestMinimum(int field)

返回此 GregorianCalendar 實(shí)例的給定日歷字段的最大最小值。 考慮到 Calendar#getFirstDayOfWeek()、Calendar#getMinimalDaysInFirstWeek()、getGregorianChange 和 Calendar#getTimeZone() 方法的當(dāng)前值,最高最小值定義為 getActualMinimum(int) 針對(duì)任何可能的時(shí)間值返回的最大值 .

指定者:

日歷類中的getGreatestMinimum

參數(shù):

參數(shù)名稱 參數(shù)描述
field 日歷字段。

返回:

給定日歷字段的最高最小值。

getLeastMaximum

public int getLeastMaximum(int field)

返回此 GregorianCalendar 實(shí)例的給定日歷字段的最低最大值。 考慮到 Calendar#getFirstDayOfWeek()、Calendar#getMinimalDaysInFirstWeek()、getGregorianChange 和 Calendar#getTimeZone() 方法的當(dāng)前值,最低最大值定義為 getActualMaximum(int) 針對(duì)任何可能的時(shí)間值返回的最小值 .

指定者:

日歷類中的getLeastMaximum

參數(shù):

參數(shù)名稱 參數(shù)描述
field 日歷字段

返回:

給定日歷字段的最低最大值。

getActualMinimum

public int getActualMinimum(int field)

返回此日歷字段可能具有的最小值,同時(shí)考慮給定的時(shí)間值和 Calendar#getFirstDayOfWeek()、Calendar#getMinimalDaysInFirstWeek()、getGregorianChange 和 Calendar#getTimeZone() 方法的當(dāng)前值。

例如,如果公歷更改日期為 1970 年 1 月 10 日,并且此 GregorianCalendar 的日期為 1970 年 1 月 20 日,則 DAY_OF_MONTH 字段的實(shí)際最小值為 10,因?yàn)?1970 年 1 月 10 日的上一個(gè)日期是 1996 年 12 月 27 日( 在儒略歷中)。 因此,1969 年 12 月 28 日至 1970 年 1 月 9 日不存在。

覆蓋:

日歷類中的 getActualMinimum

參數(shù):

參數(shù)名稱 參數(shù)描述
field 日歷字段

返回:

此 GregorianCalendar 的時(shí)間值的給定字段的最小值

getActualMaximum

public int getActualMaximum(int field)

返回此日歷字段可能具有的最大值,同時(shí)考慮給定的時(shí)間值和 Calendar#getFirstDayOfWeek()、Calendar#getMinimalDaysInFirstWeek()、getGregorianChange 和 Calendar#getTimeZone() 方法的當(dāng)前值。 例如,如果此實(shí)例的日期是 2004 年 2 月 1 日,則 DAY_OF_MONTH 字段的實(shí)際最大值為 29,因?yàn)?2004 年是閏年,如果此實(shí)例的日期是 2005 年 2 月 1 日,則為 28。

此方法根據(jù) Calendar#YEAR(日歷年)值而不是周年計(jì)算 Calendar#WEEK_OF_YEAR 的最大值。 調(diào)用 getWeeksInWeekYear() 以獲取此 GregorianCalendar 的周年中 WEEK_OF_YEAR 的最大值。

覆蓋:

日歷類中的 getActualMaximum

參數(shù):

參數(shù)名稱 參數(shù)描述
field 日歷字段

返回:

此 GregorianCalendar 的時(shí)間值的給定字段的最大值

clone

public Object clone()

從班級(jí)復(fù)制的描述:日歷

創(chuàng)建并返回此對(duì)象的副本。

覆蓋:

在日歷類中克隆

返回:

此對(duì)象的副本。

getTimeZone

public TimeZone getTimeZone()

從班級(jí)復(fù)制的描述:日歷

獲取時(shí)區(qū)。

覆蓋:

類 Calendar 中的 getTimeZone

返回:

與此日歷關(guān)聯(lián)的時(shí)區(qū)對(duì)象。

setTimeZone

public void setTimeZone(TimeZone zone)

從班級(jí)復(fù)制的描述:日歷

使用給定的時(shí)區(qū)值設(shè)置時(shí)區(qū)。

覆蓋:

日歷類中的 setTimeZone

參數(shù):

參數(shù)名稱 參數(shù)描述
zone 給定的時(shí)區(qū)。

isWeekDateSupported

public final boolean isWeekDateSupported()

返回 true 表示此 GregorianCalendar 支持星期日期。

覆蓋:

類 Calendar 中的 isWeekDateSupported

返回:

true(總是)

getWeekYear

public int getWeekYear()

返回此 GregorianCalendar 表示的周年。 在 1 和周年的最大周數(shù)之間的周中的日期具有相同的周年值,可能在 Calendar#YEAR(日歷年)值之前或之后一年。

此方法在計(jì)算周年之前調(diào)用 Calendar#complete()。

覆蓋:

課堂日歷中的getWeekYear

返回:

此 GregorianCalendar 表示的周年。 如果 Calendar#ERA 值為 BC,則年份由 0 或負(fù)數(shù)表示:BC 1 為 0,BC 2 為 -1,BC 3 為 -2,依此類推。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果任何日歷字段在非寬松模式下無(wú)效。

setWeekDate

public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)

將此 GregorianCalendar 設(shè)置為日期說(shuō)明符給出的日期 - weekYear、weekOfYear 和 dayOfWeek。 weekOfYear 遵循 WEEK_OF_YEAR 編號(hào)。 dayOfWeek 值必須是 Calendar#DAY_OF_WEEK 值之一:Calendar#SUNDAY 到 Calendar#SATURDAY。

請(qǐng)注意,數(shù)字星期幾表示不同于 ISO 8601 標(biāo)準(zhǔn),并且當(dāng) getFirstDayOfWeek() 為 MONDAY 且 getMinimalDaysInFirstWeek() 為 4 時(shí),weekOfYear 編號(hào)與標(biāo)準(zhǔn)兼容。

與 set 方法不同,所有日歷字段和時(shí)間值都是在返回時(shí)計(jì)算的。

如果 weekOfYear 超出了 weekYear 中的有效周范圍,則在寬松模式下調(diào)整 weekYear 和 weekOfYear 值,或者在非寬松模式下拋出 IllegalArgumentException。

覆蓋:

日歷類中的 setWeekDate

參數(shù):

參數(shù)名稱 參數(shù)描述
weekYear 一周年
weekOfYear 基于 weekYear 的周數(shù)
dayOfWeek 星期幾值:DAY_OF_WEEK 字段的常量之一:Calendar#SUNDAY, ..., Calendar#SATURDAY。

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果任何給定的日期說(shuō)明符無(wú)效,或者任何日歷字段與非寬松模式下的給定日期說(shuō)明符不一致

getWeeksInWeekYear

public int getWeeksInWeekYear()

返回此 GregorianCalendar 表示的一周年中的周數(shù)。

例如,如果此 GregorianCalendar 的日期為 2008 年 12 月 31 日,且設(shè)置為 ISO 8601 兼容,則此方法將在以下期間返回 53:2008 年 12 月 29 日至 2010 年 1 月 3 日,而 getActualMaximum(WEEK_OF_YEAR) 將在以下期間返回 52:12 月 2007 年 31 月 31 日至 2008 年 12 月 28 日。

覆蓋:

類日歷中的getWeeksInWeekYear

返回:

一周中的周數(shù)。

computeFields

protected void computeFields()

將時(shí)間值(從 Epoch 的毫秒偏移量)轉(zhuǎn)換為日歷字段值。 時(shí)間不先重新計(jì)算; 重新計(jì)算時(shí)間,然后是字段,調(diào)用完整方法。

指定者:

日歷類中的 computeFields

computeTime

protected void computeTime()

將日歷字段值轉(zhuǎn)換為時(shí)間值(從 Epoch 開始的毫秒偏移量)。

指定者:

日歷類中的 computeTime

Throws:

Throw名稱 Throw描述
IllegalArgumentException 如果任何日歷字段無(wú)效。

toZonedDateTime

public ZonedDateTime toZonedDateTime()

將此對(duì)象轉(zhuǎn)換為 ZonedDateTime,它表示時(shí)間線上與此 GregorianCalendar 相同的點(diǎn)。

由于此對(duì)象支持 Julian-Gregorian 轉(zhuǎn)換日期而 ZonedDateTime 不支持,因此生成的年、月和日可能具有不同的值。 結(jié)果將代表 ISO 日歷系統(tǒng)中的正確日期,這對(duì)于修改儒略日也將是相同的值。

返回:

表示時(shí)間線上與此公歷相同的點(diǎn)的分區(qū)日期時(shí)間

from

public static GregorianCalendar from(ZonedDateTime zdt)

從 ZonedDateTime 對(duì)象獲取具有默認(rèn)語(yǔ)言環(huán)境的 GregorianCalendar 實(shí)例。

由于 ZonedDateTime 不支持 Julian-Gregorian 轉(zhuǎn)換日期并使用 ISO 日歷系統(tǒng),因此返回 GregorianCalendar 是純公歷并使用 ISO 8601 標(biāo)準(zhǔn)定義周,其中 MONDAY 作為 Calendar#getFirstDayOfWeek() 和 4 作為值 日歷#getMinimalDaysInFirstWeek()。

ZoneDateTime 可以比 GregorianCalendar 在未來(lái)和過(guò)去更遠(yuǎn)地存儲(chǔ)時(shí)間線上的點(diǎn)。 在這種情況下,此方法將引發(fā) IllegalArgumentException 異常。

參數(shù):

參數(shù)名稱 參數(shù)描述
zdt 要轉(zhuǎn)換的分區(qū)日期時(shí)間對(duì)象

返回:

公歷,表示時(shí)間線上與提供的分區(qū)日期時(shí)間相同的點(diǎn)

Throws:

Throw名稱 Throw描述
NullPointerException 如果 zdt 為空
IllegalArgumentException 如果分區(qū)日期時(shí)間太大而無(wú)法表示為 GregorianCalendar

網(wǎng)頁(yè)名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSGregorianCalendar
標(biāo)題來(lái)源:http://www.5511xx.com/article/cdosdeh.html