模块  java.base
Paket java.util

Klasse Calendar

  • Implementierte Schnittstellen
    Serializable , Cloneable , Comparable<Calendar>
    Bekannte direkte Unterklassen:
    GregorianCalendar

    public abstract class Calendar
    extends Object
    implements Serializable, Cloneable, Comparable<Calendar>
    DieCalendarKlasse ist eine abstrakte Klasse. Sie stellt Methoden zur Umwandlung zwischen einem bestimmten Zeitpunkt und einer Gruppe bereitcalendar fieldswieYEAR , MONTH , DAY_OF_MONTH , HOUR, usw., sowie zur Bearbeitung dieser Kalenderfelder, zum Beispiel zum Ermitteln des Datums der nächsten Woche. Ein Zeitpunkt lässt sich als Millisekundenwert darstellen. Dieser Wert ist der Offset zur Epoche, dem 1. Januar 1970, 00:00:00,000 GMT (gregorianisch). Die Klasse stellt zusätzlich Felder und Methoden bereit, um konkrete Kalendersysteme außerhalb des Pakets zu implementieren. Diese Felder und Methoden sind definiert als

    protected 。

    Wie andere gebietsschemaabhängige Klassen auchCalendarStellt eine Klassenmethode bereitgetInstance, um ein generisches Objekt dieses Typs abzurufen.Calendar的getInstanceDie Methode gibt einen … zurückCalendarein Objekt, dessen Kalenderfelder mit dem aktuellen Datum und der aktuellen Uhrzeit initialisiert sind:

         Calendar rightNow = Calendar.getInstance();
     

    CalendarEin Objekt erzeugt alle Kalenderfeldwerte, die für die Formatierung von Datum und Zeit in einem bestimmten Sprach- und Kalenderstil nötig sind (zum Beispiel Japanisch - Gregorianisch, Japanisch - Traditionell).CalendarDefiniert den Wertebereich und die Bedeutung bestimmter Kalenderfelder. Zum Beispiel hat der erste Monat eines Kalendersystems in allen Kalendern den WertMONTH == JANUARY。 Andere Werte definieren die konkreten Unterklassen, zum BeispielERA。 Details finden Sie in der Dokumentation der einzelnen Felder und Unterklassen.

    Abrufen und Festlegen von Kalenderfeldwerten

    Durch einen AufrufsetMit dieser Methode setzen Sie Kalenderfeldwerte.CalendarFeldwerte werden erst interpretiert, wenn das Programm ihren Zeitwert (Millisekunden seit der Epoche) oder den Wert eines Kalenderfelds berechnet. Aufrufget , getTimeInMillis , getTime , add和rollist an solchen Berechnungen beteiligt.

    Lenient

    Calendarbesitzt zwei Modi zur Interpretation von Kalenderfeldern: lenient und non-lenient. WennCalendarsich das Objekt im lenient-Modus befindet, akzeptiert es weitere Kalenderfeldwerte, als es erzeugt. WennCalendareine Neuberechnung zurückkehrt,Calendarzu den Kalenderfeldwerten, get()werden alle Kalenderfelder normalisiert. Zum Beispiel interpretiert der lenient-ModusGregorianCalendar解释MONTH == JANUARY , DAY_OF_MONTH == 32als den 1. Februar.

    WennCalendarsich nicht im lenient mode befindet, löst es eine Ausnahme aus, wenn seine Kalenderfelder inkonsistent sind. Zum BeispielGregorianCalendarerzeugt immer Werte zwischen 1 und der Monatslänge.DAY_OF_MONTHWenn ein Feldwert außerhalb des gültigen Bereichs gesetzt wurde, löst der nicht-lenienteGregorianCalendarbeim Berechnen seiner Zeit- oder Kalenderfeldwerte eine Ausnahme aus.

    First Week

    CalendarDie siebentägige Arbeitswoche wird mit zwei Parametern länderspezifisch definiert: dem ersten Tag der Woche und der Mindestanzahl von Tagen in der ersten Woche (von 1 bis 7). Beim Erstellen vonCalendarstammen diese Zahlen aus den Locale-Ressourcendaten oder aus dem Locale selbst. Wenn das angegebene Locale die Unicode extensions „fw" und/oder „rg" enthält, wird der erste Tag der Woche aus diesen extensions ermittelt. Wenn sowohl „fw" als auch „rg" angegeben sind, überschreibt der Wert aus der „fw"-extension den impliziten Wert aus der „rg"-extension. Sie lassen sich auch explizit über Methoden zum Setzen ihrer Werte festlegen. Beim Setzen oder Abrufen des

    WEEK_OF_MONTHoder WEEK_OF_YEAR-Felds CalendarDie erste Woche eines Monats oder Jahres muss als Referenzpunkt festgelegt werden. Die erste Woche eines Monats oder Jahres ist definiert als der früheste Sieben-Tage-Zeitraum, dergetFirstDayOfWeek()beginnt und mindestensgetMinimalDaysInFirstWeek()Tage des Monats oder Jahres enthält. Vor der ersten Woche werden die Wochennummern als ..., -1, 0 nummeriert. Die Wochennummern 2, 3, ... folgen darauf. Beachten Sie,get()dass die zurückgegebene normalisierte Nummerierung abweichen kann. BeispielsweiseCalendarkann eine bestimmte Unterklasse die Woche vor der ersten Woche eines Jahres als Wochen周。

    Auflösung von Kalenderfeldern

    Beim Berechnen von Datum und Uhrzeit aus Kalenderfeldern fehlen möglicherweise Informationen (z. B. nur Jahr und Monat ohne Tag), oder die Informationen sind inkonsistent (z. B. Dienstag, 15. Juli 1996 (gregorianisch) — der 15. Juli 1996 war tatsächlich ein Montag).CalendarDie Kalenderfeldwerte werden wie folgt aufgelöst, um Datum und Uhrzeit zu bestimmen. If there is any conflict in calendar field values,

    Calendargives priorities to calendar fields that have been set more recently. Hier sind die Standardkombinationen der Kalenderfelder. Verwendet wird die neueste Kombination, die durch die zuletzt gesetzten einzelnen Felder bestimmt wird.

    For the date fields :

     YEAR + MONTH + DAY_OF_MONTH
     YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
     YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
     YEAR + DAY_OF_YEAR
     YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
     
    For the time of day fields :
     HOUR_OF_DAY
     AM_PM + HOUR
     

    Wenn der Wert eines Kalenderfelds in der ausgewählten Feldkombination nicht gesetzt ist,Calendarverwendet das Programm seinen Standardwert. Der Standardwert jedes Felds kann je nach Kalendersystem variieren. Beispielsweise ist inGregorianCalendar der Standardwert eines Felds der Beginn der Ära, nämlichYEAR = 1970 , MONTH = JANUARY , DAY_OF_MONTH = 1und so weiter.

    Hinweis: Bei der Interpretation bestimmter ungewöhnlicher Zeiten gibt es mögliche Mehrdeutigkeiten. Diese werden wie folgt aufgelöst:

    1. 23:59 ist die letzte Minute eines Tages, 00:00 ist die erste Minute des nächsten Tages. Daher gilt: 31. Dezember 1999 23:59 < 1. Januar 2000 00:00 < 1. Januar 2000 00:01.
    2. Historisch ungenau gehört Mitternacht zu „AM" und Mittag zu „PM". Am selben Tag gilt daher: 12:00 AM (Mitternacht) < 12:01 AM, 12:00 PM (Mittag) < 12:01 PM.

    Das Formatierungsstring für Datum oder Uhrzeit ist nicht Teil der Kalenderdefinition, weil der Benutzer diese Strings zur Laufzeit ändern oder überschreiben muss. Verwenden SieDateFormatzum Formatieren von Datumswerten.

    Feldmanipulation

    : Kalenderfelder lassen sich mit drei Methoden ändern:set() , add()和roll().

    set(f, value)Die Methode ändert das Kalenderfeldf至value. Außerdem setzt sie eine interne Membervariable, um anzuzeigen, dass das Kalenderfeldfgeändert wurde. Obwohl das Kalenderfeldfsofort geändert wird, werden die Zeitwerte des Kalenders in Millisekunden erst beim nächsten Aufruf vonget() , getTime() , getTimeInMillis() , add() ,或roll()neu berechnet. Dadurch lösen mehrere Aufrufe vonset()keine mehrfachen unnötigen Berechnungen aus. Als Ergebnis der Änderung eines Kalenderfelds mitset()ändern sich je nach Kalenderfeld, Kalenderfeldwert und Kalendersystem auch andere Kalenderfelder. Außerdem,get(f)Gibt nicht unbedingt einen Wert zurückvalueDurch den Aufruf mit dem Telefon wird bissetnach dem Neuberechnen der Kalenderfelder der Methode. Das genaue Verhalten bestimmt die jeweilige Kalenderklasse.

    Beispiel: Betrachten SieGregorianCalendardas ursprünglich auf den 31. August 1999 gesetzt wurde, set(Calendar.MONTH, Calendar.SEPTEMBER)Setzen des Tages auf den 31. September 1999. Dies ist eine temporäre interne Darstellung und wird zum 1. Oktober 1999 aufgelöst, wenngetTime()dann aufgerufen wird. Beim Aufruf vonset(Calendar.DAY_OF_MONTH, 30)wird jedoch vor dem AufrufgetTime()das Datum auf den 30. September 1999 gesetzt, weilset()danach keine Neuberechnung erfolgt.

    add(f, delta)增加delta到现场f. Das entspricht zwei Aufrufen mit folgenden Anpassungen:set(f, get(f) + delta) :

    Additionsregel 1. Der Wert des Feldesf nach dem Aufruf minus der Wert des Feldes f vor dem Aufruf ist delta, modulo eines Überlaufs, der im Feld faufgetreten ist. Ein Überlauf tritt auf, wenn ein Feldwert seinen Bereich überschreitet. Dadurch wird das nächstgrößere Feld erhöht oder verringert und der Feldwert zurück in seinen Bereich angepasst.

    Additionsregel 2. Wenn ein kleineres Feld unverändert bleiben muss, aber wegen Änderungen seines Minimums oder Maximums nach der Änderung des Feldesf oder wegen anderer Einschränkungen, wie Änderungen des Zeitzonen-Offsets, nicht seinen vorherigen Wert erreichen kann, wird sein Wert so nah wie möglich am erwarteten Wert angepasst. Ein kleineres Feld repräsentiert eine kleinere Zeiteinheit. HOUR ist ein kleineres Feld als DAY_OF_MONTH. Kleinere Felder, die nicht unverändert bleiben müssen, werden nicht angepasst. Das Kalendersystem bestimmt, welche Felder unverändert bleiben müssen.

    Außerdem erzwingtset()anders als add()das sofortige Neuberechnen der Millisekunden und aller Felder des Kalenders.

    Beispiel: Betrachten SieGregorianCalendardas ursprünglich auf den 31. August 1999 gesetzt wurde, add(Calendar.MONTH, 13)Setzen des Kalenders auf den 30. September 2000. Additionsregel 1 setztMONTHdas Feld auf September, weil die Addition von 13 Monaten zum September des nächsten Jahres führt. DaDAY_OF_MONTHim September nichtGregorianCalendarsein kann, setzt Additionsregel 2DAY_OF_MONTHauf den nächstmöglichen Wert. Obwohl es ein kleineres Feld ist,DAY_OF_WEEKnimmt Regel 2 anDAY_OF_WEEKkeine Anpassung vor, weil sich das Feld bei der Änderung des Monats inGregorianCalendarerwartungsgemäß ändert.

    roll(f, delta)增加delta到现场fändert keine größeren Felder. Das entspricht einem Aufruf mit folgenden Anpassungen:add(f, delta) :

    Roll-Regel. Größere Felder bleiben nach dem Aufruf unverändert. Ein größeres Feld repräsentiert eine größere Zeiteinheit.DAY_OF_MONTH ist ein größeres Feld als HOUR.

    Beispiel: SieheGregorianCalendar.roll(int, int).

    Verwendungsmuster. Um das Verhalten vonadd()和roll()zu veranschaulichen, betrachten Sie eine Benutzeroberflächenkomponente mit Schaltflächen zum Erhöhen und Verringern von Monat, Tag und Jahr sowie einem zugrunde liegendenGregorianCalendar. Wenn die Oberfläche den 31. Januar 1999 anzeigt und der Benutzer die Schaltfläche zum Erhöhen des Monats drückt, was sollte sie dann anzeigen? Wenn die zugrunde liegende Implementierungset() verwendet, liest sie möglicherweise den 3. März 1999. Ein besseres Ergebnis wäre der 28. Februar 1999. Drückt der Benutzer die Schaltfläche erneut, sollte sie den 31. März 1999 anzeigen und nicht den 28. März 1999. Durch Speichern des ursprünglichen Datums und Verwendung vonadd()oder roll()je nachdem, ob größere Felder betroffen sein dürfen, verhält sich die Benutzeroberfläche so, wie es die meisten Benutzer intuitiv erwarten.

    Seit Version: 1.1 Siehe auch:
    System.currentTimeMillis(),Date,GregorianCalendar,TimeZone,DateFormat, Serialized Form
    • 嵌套类汇总

      Verschachtelte Klasse Variablen und Typen Klasse Beschreibung
      static class  Calendar.Builder
      Calendar.BuilderZur Erstellung von Calendar 。
    • 构造方法摘要

      Konstruktor Variable Konstruktor Beschreibung
      protected Calendar()
      Erstellt einen Kalender mit der Standardzeitzone und demFORMATStandardgebietsschema.
      protected Calendar​(TimeZone zone, Locale aLocale)
      Erstellt einen Kalender mit der angegebenen Zeitzone und dem angegebenen Gebietsschema.
    • 方法摘要

      Alle Methoden Statische Methoden Instanzmethoden Abstrakte Methoden Konkrete Methoden Variablen und Typ Methode Beschreibung
      abstract void add​(int field, int amount)
      Fügt das angegebene Zeitmaß zum gegebenen Kalenderfeld hinzu oder zieht es ab. Dabei gelten die Regeln des Kalenders.
      boolean after​(Object when)
      Gibt zurück, ob diesesCalendar是否表示指定的 Objectdargestellten Zeitpunkt repräsentiert.
      boolean before​(Object when)
      Gibt zurück, ob diesesCalendar是否表示指定的 Objectdargestellten Zeitpunkt repräsentiert.
      void clear()
      Setzt alle Kalenderfeldwerte und Zeitwerte (Millisekunden-Offset von der Epoche), die in diesemCalendarnicht definiert sind.
      void clear​(int field)
      Setzt den gegebenen Kalenderfeldwert und den Zeitwert (Millisekunden-Offset von der Epoche), die in diesemCalendarnicht definiert sind.
      Object clone()
      Erstellt eine Kopie dieses Objekts und gibt sie zurück.
      int compareTo​(Calendar anotherCalendar)
      Vergleicht die Zeitwerte (Millisekunden-Offset von der Epoche), die zweiCalendarObjekte darstellen.
      protected void complete()
      Füllt alle nicht gesetzten Felder in den Kalenderfeldern aus.
      protected abstract void computeFields()
      Konvertiert den aktuellen Millisekunden-Zeitwert in dietimeKalenderfeldwerte vonfields[] 。
      protected abstract void computeTime()
      Konvertiert die aktuellen Kalenderfeldwerte infields[]in den Millisekunden-Zeitwerttime 。
      boolean equals​(Object obj)
      Vergleicht diesesCalendarmit dem angegebenen Object 。
      int get​(int field)
      Gibt den Wert des gegebenen Kalenderfelds zurück.
      int getActualMaximum​(int field)
      Gibt für den Zeitwert diesesCalendarden höchsten Wert zurück, den das angegebene Kalenderfeld haben Calendar 。
      int getActualMinimum​(int field)
      Gibt für den Zeitwert diesesCalendarden niedrigsten Wert zurück, den das angegebene Kalenderfeld haben Calendar 。
      static Set<String> getAvailableCalendarTypes()
      Gibt eine nicht veränderbareSetzurück, die alle Kalendertypen enthält, die die Laufzeitumgebung Calendarunterstützt.
      static Locale[] getAvailableLocales()
      Gibt ein Array aller Locales zurück,getInstancedie Methode kann getInstanceeine lokalisierte Instanz zurückgeben.
      String getCalendarType()
      Gibt den Kalendertyp diesesCalendarObjekts zurück.
      String getDisplayName​(int field, int style, Locale locale)
      Gibt eine String-Darstellung der Werte für das angegebenestyle和 locale日历 字段Feld zurück locale 。
      Map<String,​Integer> getDisplayNames​(int field, int style, Locale locale)
      Gibt eine Map zurück,Mapdie alle Namen des angegebenen style和 locale日历 字段Felds mit den zugehörigen Feldwerten enthält.
      int getFirstDayOfWeek()
      Gibt den ersten Tag der Woche zurück; zum BeispielSUNDAY在美国, MONDAY在法国。
      abstract int getGreatestMinimum​(int field)
      Gibt den höchsten Minimalwert des angegebenen Kalenderfelds dieserCalendarInstanz zurück.
      static Calendar getInstance()
      Holt einen Kalender mit der Standardzeitzone und dem Standard-Locale.
      static Calendar getInstance​(Locale aLocale)
      Holt einen Kalender mit der Standardzeitzone und dem angegebenen Locale.
      static Calendar getInstance​(TimeZone zone)
      Holt einen Kalender mit der angegebenen Zeitzone und dem Standard-Locale.
      static Calendar getInstance​(TimeZone zone, Locale aLocale)
      Holt einen Kalender mit der angegebenen Zeitzone und dem angegebenen Locale.
      abstract int getLeastMaximum​(int field)
      Gibt den kleinsten Maximalwert des angegebenen Kalenderfelds dieserCalendarInstanz zurück.
      abstract int getMaximum​(int field)
      Gibt denCalendar实例的给定日历字段的 Calendar 。
      int getMinimalDaysInFirstWeek()
      Gibt die Mindestanzahl von Tagen zurück, die für die erste Woche des Jahres nötig ist. Enthält die erste Woche zum Beispiel den ersten Tag des ersten Monats, gibt die Methode 1 zurück.
      abstract int getMinimum​(int field)
      Gibt denCalendar实例的给定日历字段的 Calendar 。
      Date getTime()
      Gibt einDateObjekt zurück, das den Zeitwert dieses CalendarObjekts darstellt (Millisekunden-Offset von der Epoche).
      long getTimeInMillis()
      Gibt den Zeitwert dieses Calendar-Objekts in Millisekunden zurück.
      TimeZone getTimeZone()
      Gibt die Zeitzone zurück.
      int getWeeksInWeekYear()
      Gibt die Woche im Jahr zurück, die diesesCalendarObjekt darstellt. Calendar 。
      int getWeekYear()
      Gibt dies zurück.Calendardargestellt wird. Calendar 。
      int hashCode()
      Gibt den Hash-Code dieses Kalenders zurück.
      protected int internalGet​(int field)
      Gibt den Wert des angegebenen Kalenderfelds zurück.
      boolean isLenient()
      Gibt an, ob die Interpretation von Datum und Uhrzeit tolerant ist.
      boolean isSet​(int field)
      Prüft, ob das angegebene Kalenderfeld einen Wert hat, einschließlich der vongetFall, in dem ein Methodenaufruf den Wert einer internen Feldberechnung setzt.
      boolean isWeekDateSupported()
      Gibt dies zurückCalendarUnterstützt das Datum mit Wochenangabe.
      abstract void roll​(int field, boolean up)
      Addiert oder subtrahiert (auf/ab) eine einzelne Zeiteinheit auf dem angegebenen Zeitfeld, ohne größere Felder zu ändern.
      void roll​(int field, int amount)
      Addiert den angegebenen (vorzeichenbehafteten) Betrag zum angegebenen Kalenderfeld, ohne größere Felder zu ändern.
      void set​(int field, int value)
      Setzt das angegebene Kalenderfeld auf den angegebenen Wert.
      void set​(int year, int month, int date)
      Setzt den Wert der KalenderfelderYEAR , MONTH和 DAY_OF_MONTH 。
      void set​(int year, int month, int date, int hourOfDay, int minute)
      Setzt den Wert des KalenderfeldsYEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY和 MINUTE 。
      void set​(int year, int month, int date, int hourOfDay, int minute, int second)
      Werte in Feldern setzenYEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。
      void setFirstDayOfWeek​(int value)
      Legen Sie fest, welcher Tag der erste Tag der Woche ist. Zum Beispiel:SUNDAY在美国, MONDAY在法国。
      void setLenient​(boolean lenient)
      Gibt an, ob die Interpretation von Datum/Zeit toleranter ist.
      void setMinimalDaysInFirstWeek​(int value)
      Legen Sie die minimale Anzahl von Tagen für die erste Woche des Jahres fest. Enthält die erste Woche zum Beispiel den ersten Tag des ersten Monats des Jahres, rufen Sie diese Methode mit dem Wert 1 auf.
      void setTime​(Date date)
      Verwenden Sie die angegebenenDateStellen Sie die Zeit für diesen Kalender ein.
      void setTimeInMillis​(long millis)
      Setzt die aktuelle Zeit dieses Calendar-Objekts aus dem angegebenen long-Wert.
      void setTimeZone​(TimeZone value)
      Setzt die Zeitzone mit dem angegebenen Zeitzonenwert.
      void setWeekDate​(int weekYear, int weekOfYear, int dayOfWeek)
      Legt das Datum diesesCalendarObjekts mit dem angegebenen Datumskonstrukt fest - Woche im Jahr, Wochentag und Wochentag.
      Instant toInstant()
      Konvertiert dieses Objekt in einenInstantWert.
      String toString()
      Gibt die String-Darstellung dieses Kalenders zurück.
    • 字段详细信息

      • ERA

        public static final int ERA
        get和setDie Feldnummer repräsentiert die Epoche, zum Beispiel AD oder BC im julianischen Kalender. Dies ist ein kalenderspezifischer Wert. Siehe die Dokumentation der Unterklasse.
        Siehe auch:
        GregorianCalendar.AD,GregorianCalendar.BC, Konstanter Feldwert
      • YEAR

        public static final int YEAR
        get和setDie Feldnummer repräsentiert das Jahr. Dies ist ein kalenderspezifischer Wert. Siehe die Dokumentation der Unterklasse.
        Siehe auch: Konstanter Feldwert
      • WEEK_OF_YEAR

        public static final int WEEK_OF_YEAR
        get和setDie Feldnummer repräsentiert die Wochennummer des aktuellen Jahres. Die erste Woche des Jahres, definiert durchgetFirstDayOfWeek()和getMinimalDaysInFirstWeek(), hat den Wert 1. Unterklassen definieren die Tage vor der ersten Woche des JahresWEEK_OF_YEAR的值。
        Siehe auch:
        getFirstDayOfWeek(),getMinimalDaysInFirstWeek(), Konstante Feldwerte
      • WEEK_OF_MONTH

        public static final int WEEK_OF_MONTH
        get和set字段编号表示getDie erste Woche des Monats, definiert durchgetFirstDayOfWeek()和getMinimalDaysInFirstWeek()hat den Wert 1. Unterklassen definieren den Wert für die Tage vor der ersten Woche des Monats.WEEK_OF_MONTH 。
        Siehe auch:
        getFirstDayOfWeek(),getMinimalDaysInFirstWeek(), Konstante Feldwerte
      • DATE

        public static final int DATE
        get和setDie Feldnummer gibt den Tag des Monats an. Dies ist einDAY_OF_MONTHSynonym davon. Der erste Tag des Monats hat den Wert 1.
        Siehe auch:
        DAY_OF_MONTH, Konstante Feldwerte
      • DAY_OF_MONTH

        public static final int DAY_OF_MONTH
        get和setDie Feldnummer gibt den Tag des Monats an. Dies ist einDATESynonym. Der erste Tag des Monats hat den Wert 1.
        Siehe auch:
        DATE, Konstante Feldwerte
      • DAY_OF_YEAR

        public static final int DAY_OF_YEAR
        get和setDie Feldnummer gibt die Tagesnummer im Jahr an. Der erste Tag des Jahres hat den Wert 1.
        Siehe auch: Konstante Feldwerte
      • DAY_OF_WEEK

        public static final int DAY_OF_WEEK
        get和setDas Feld gibt den Wochentag an. Der Wert dieses FeldsSUNDAY , MONDAY , TUESDAY , WEDNESDAY , THURSDAY , FRIDAY和SATURDAY 。
        Siehe auch:
        SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY, KonstantenfeldwertSATURDAYDAY_OF_WEEK_IN_MONTH
      • DAY_OF_WEEK_IN_MONTH

        public static final int DAY_OF_WEEK_IN_MONTH
        get和setFeld legt dies einen Tag innerhalb eines Monats eindeutig fest. Anders alsDAY_OF_WEEKundWEEK_OF_MONTH和WEEK_OF_YEARodergetFirstDayOfWeek()oder getMinimalDaysInFirstWeek()bisDAY_OF_MONTH 1至7;DAY_OF_WEEK_IN_MONTH 1bis8到14,DAY_OF_WEEK_IN_MONTH 2und so weiter.DAY_OF_WEEK_IN_MONTH 0表示DAY_OF_WEEK_IN_MONTH 1die Woche davor. Negative Werte zählen ab Monatsende, daher wird der letzte Sonntag eines Monats alsDAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1angegeben. Da negative Werte rückwärts zählen, richten sie sich im Monat meist anders aus als positive Werte. Hat ein Monat zum Beispiel 31 Tage, dannDAY_OF_WEEK_IN_MONTH -1überlapptDAY_OF_WEEK_IN_MONTH 5和4und endet.
        Siehe auch:
        DAY_OF_WEEK,WEEK_OF_MONTH, Konstantenfeldwert
      • AM_PM

        public static final int AM_PM
        get和set字段编号表示HOURvor oder nach Mittag liegt. Zum Beispiel um 22:04:AM_PM是PM 。
        Siehe auch:
        AM,PM,HOUR, konstanter Feldwert
      • HOUR

        public static final int HOUR
        get和setFeldnummer für die Stunde am Vormittag oder Nachmittag.HOURFür das 12-Stunden-Format (0 - 11). Mittag und Mitternacht werden durch 0 dargestellt, nicht durch 12. Zum Beispiel um 10:04:15.250 PM ist der WertHOUR10.
        Siehe auch:
        AM_PM,HOUR_OF_DAY, konstanter Feldwert
      • HOUR_OF_DAY

        public static final int HOUR_OF_DAY
        get和setFeldnummer für die Stunde des Tages.HOUR_OF_DAYFür das 24-Stunden-Format. Zum Beispiel um 10:04 PM ist der WertHOUR_OF_DAY22.
        Siehe auch:
        HOUR, konstanter Feldwert
      • MINUTE

        public static final int MINUTE
        get和setFeldnummer für die Minute innerhalb der Stunde. Zum Beispiel um 10:04 PM ist der WertMINUTE4.
        Siehe auch: konstanter Feldwert
      • SECOND

        public static final int SECOND
        get和setFeldnummer für die Sekunde innerhalb der Minute. Zum Beispiel um 10:04 PM ist der WertSECOND15.
        Siehe auch: konstanter Feldwert
      • MILLISECOND

        public static final int MILLISECOND
        get和setFeldnummer für die Millisekunde innerhalb der Sekunde. Zum Beispiel um 10:04 PM ist der WertMILLISECOND250.
        Siehe auch: konstanter Feldwert
      • ZONE_OFFSET

        public static final int ZONE_OFFSET
        get和setFeldnummer für den Rohversatz zu GMT in Millisekunden. Wenn die

        TimeZoneUnterklasse historische Änderungen des GMT-Versatzes unterstützt, gibt dieses Feld den korrekten GMT-Versatzwert derCalendarZeitzone wieder.

        Siehe auch: konstanter Feldwert
      • DST_OFFSET

        public static final int DST_OFFSET
        get和setFeldnummer für den Sommerzeitversatz in Millisekunden. Wenn

        TimeZoneWenn die implementierende Unterklasse Änderungen der historischen Sommerzeit-Zeitpläne unterstützt, gibt dieses Feld den korrekten Sommerzeit-VersatzwertCalendarfür diese Zeitzone wieder.

        Siehe auch: Werte der Konstantenfelder
      • FIELD_COUNT

        public static final int FIELD_COUNT
        get和setDie Anzahl der verschiedenen erkannten Felder. Der Bereich der Feldnummern ist0..FIELD_COUNT-1 。
        Siehe auch: Werte der Konstantenfelder
      • SUNDAY

        public static final int SUNDAY
        Der Wert des FeldesDAY_OF_WEEK字段的值。
        Siehe auch: Werte der Konstantenfelder
      • MONDAY

        public static final int MONDAY
        DAY_OF_WEEKDer Wert des Feldes steht für Montag.
        Siehe auch: Werte der Konstantenfelder
      • TUESDAY

        public static final int TUESDAY
        Der Wert des FeldesDAY_OF_WEEK字段的值。
        Siehe auch: Werte der Konstantenfelder
      • WEDNESDAY

        public static final int WEDNESDAY
        DAY_OF_WEEKDer Wert des Feldes steht für Mittwoch.
        Siehe auch: Werte der Konstantenfelder
      • THURSDAY

        public static final int THURSDAY
        DAY_OF_WEEKDer Wert des Feldes steht für Donnerstag.
        Siehe auch: Werte der Konstantenfelder
      • FRIDAY

        public static final int FRIDAY
        Der Wert des FeldesDAY_OF_WEEK字段的值。
        Siehe auch: Werte der Konstantenfelder
      • SATURDAY

        public static final int SATURDAY
        Der Wert des FeldesDAY_OF_WEEK字段的值。
        Siehe auch: Werte der Konstantenfelder
      • JANUARY

        public static final int JANUARY
        MONTHDer Wert des Feldes steht für den ersten Monat des Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • FEBRUARY

        public static final int FEBRUARY
        MONTHDer Wert des Feldes steht für den zweiten Monat des Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • MARCH

        public static final int MARCH
        MONTHDer Wert des Felds für den dritten Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • APRIL

        public static final int APRIL
        MONTHDer Wert des Felds für den vierten Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • MAY

        public static final int MAY
        MONTHDer Wert des Felds für den fünften Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • JUNE

        public static final int JUNE
        MONTHDer Wert des Felds für den sechsten Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • JULY

        public static final int JULY
        MONTHDer Wert des Felds für den siebten Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • AUGUST

        public static final int AUGUST
        MONTHDer Wert des Felds für den achten Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • SEPTEMBER

        public static final int SEPTEMBER
        MONTHDer Wert des Felds für den neunten Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • OCTOBER

        public static final int OCTOBER
        MONTHDer Wert des Felds für den zehnten Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • NOVEMBER

        public static final int NOVEMBER
        MONTHDer Wert des Felds für den elften Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • DECEMBER

        public static final int DECEMBER
        MONTHDer Wert des Felds für den zwölften Monat eines Jahres im gregorianischen und julianischen Kalender.
        Siehe auch: Werte der Konstantenfelder
      • UNDECIMBER

        public static final int UNDECIMBER
        MONTHDer Wert des Felds für den 13. Monat eines Jahres. Dieser WertGregorianCalendarwird nicht verwendet, aber der Mondkalender verwendet ihn.
        Siehe auch: Werte der Konstantenfelder
      • AM

        public static final int AM
        AM_PMDer Wert des Felds für die Tageszeit von Mitternacht bis vor Mittag.
        Siehe auch: Werte der Konstantenfelder
      • PM

        public static final int PM
        AM_PMDer Wert des Felds für die Tageszeit von Mittag bis vor Mitternacht.
        Siehe auch: Werte der Konstantenfelder
      • 字段

        protected int[] fields
        Die Kalenderfeldwerte der aktuell gesetzten Zeit dieses Kalenders. Dies istFIELD_COUNTein Integer-Array mit Indexwerten vonERA到DST_OFFSET 。
      • isSet

        protected boolean[] isSet
        Flag, das angibt, ob das angegebene Kalenderfeld des Kalenders gesetzt ist. Ein neues Objekt hat keine gesetzten Felder. Nach dem ersten Aufruf einer Methode, die Felder erzeugt, bleiben alle Felder danach gesetzt. Dies ist eine GruppeFIELD_COUNTBoolescher Wert, der Indexwert istERA到DST_OFFSET 。
      • time

        protected long time
        Die aktuell eingestellte Zeit dieses Kalenders, angegeben in Millisekunden seit dem 1. Januar 1970, 0:00:00 GMT.
        Siehe auch:
        isTimeSet
      • isTimeSet

        protected boolean isTimeSet
        Wenn … dann …timeist der Wert gültigtimeWahr. Durch Ändern des Feldsfield[]wird die Zeit ungültig.
        Siehe auch:
        time
      • areFieldsSet

        protected boolean areFieldsSet
        Wennfields[]mit der aktuell gesetzten Zeit synchron ist, fields[]True. Wenn false, erzwingt der nächste Versuch, einen Feldwert abzurufen, die Neuberechnung des aktuellen Wertstimealler Felder.
    • 构造方法详细信息

      • Calendar

        protected Calendar()
        Erzeugt einen Kalender mit der Standardzeitzone und dem Standard-FORMATLocale.
        Siehe auch:
        TimeZone.getDefault()
      • Calendar

        protected Calendar​(TimeZone zone,
                           Locale aLocale)
        Erzeugt einen Kalender mit der angegebenen Zeitzone und dem angegebenen Locale.
        Parameter
        zone- die zu verwendende Zeitzone
        aLocale- das Locale für die Wochendaten
    • 方法详细信息

      • getInstance

        public static Calendar getInstance()
        Ruft einen Kalender mit der Standardzeitzone und dem Standard-Locale ab. Der zurückgegebeneCalendarKalender basiert auf der aktuellen Zeit in der Standardzeitzone mit dem Standard-FORMATLocale. Enthält das Locale die Zeitzone „tz" Unicode extension, wird diese Zeitzone verwendet.

        Rückgabewert: ein Kalender.
      • getInstance

        public static Calendar getInstance​(TimeZone zone)
        Ruft einen Kalender mit der angegebenen Zeitzone und dem Standard-Locale ab. Der zurückgegebeneCalendarKalender basiert auf der aktuellen Zeit in der angegebenen Zeitzone mit dem Standard-FORMATLocale.
        Parameter
        zone- die zu verwendende Zeitzone. Rückgabewert: ein Kalender.
      • getInstance

        public static Calendar getInstance​(Locale aLocale)
        Ruft einen Kalender mit der Standardzeitzone und dem angegebenen Locale ab. Der zurückgegebeneCalendarKalender basiert auf der aktuellen Zeit in der Standardzeitzone mit dem angegebenen Locale. Enthält das Locale die Zeitzone „tz" Unicode extension, wird diese Zeitzone verwendet.

        Parameter
        aLocale- das Locale für die Wochendaten. Rückgabewert: ein Kalender.
      • getInstance

        public static Calendar getInstance​(TimeZone zone,
                                           Locale aLocale)
        Ruft einen Kalender mit der angegebenen Zeitzone und dem angegebenen Locale ab. Der zurückgegebeneCalendarKalender basiert auf der aktuellen Zeit in der angegebenen Zeitzone mit dem angegebenen Locale.
        Parameter
        zone- die zu verwendende Zeitzone
        aLocale- Gebietsschema der Wochendaten. Ergebnis Kalender.
      • getAvailableLocales

        public static Locale[] getAvailableLocales()
        RückgabewertgetInstanceDie Methode gibt ein Array aller Gebietsschemas zurück, für die lokalisierte Instanzen verfügbar sind. Das zurückgegebene Array muss mindestens ein Element enthalten, das gleichLocale.US的LocaleInstanz.
        Ergebnis Ein Array von Gebietsschemas, für die lokalisierte
        CalendarInstanzen verfügbar sind.
      • computeFields

        protected abstract void computeFields()
        Konvertiert den aktuellen Millisekunden-Zeitwert intimeKalenderfeldwertefields[]. Dadurch synchronisieren Sie die Kalenderfeldwerte mit der neu gesetzten Zeit des Kalenders. Die Zeit wird nicht neu berechnet. Um zuerst die Zeit und dann die Felder neu zu berechnen, rufen Sie die Methodecomplete()auf.
        Siehe auch:
        computeTime()
      • getTime

        public final Date getTime()
        Gibt einCalendarObjekt zurück, das den Zeitwert diesesDate对象。
        Ergebnis
        Datestellt den Zeitwert dar. Siehe auch:
        setTime(Date),getTimeInMillis()
      • setTime

        public final void setTime​(Date date)
        Setzt die Zeit dieses Kalenders mit dem angegebenenDateWert. Hinweis: Der Aufruf von

        Date(Long.MAX_VALUE)oder Date(Long.MIN_VALUE)调用setTime()kann ausget()inkorrekte Feldwerte erzeugen.

        Parameter
        date- das angegebene Datum. Siehe auch:
        getTime(),setTimeInMillis(long)
      • getTimeInMillis

        public long getTimeInMillis()
        Gibt den Zeitwert dieses Calendar in Millisekunden zurück.
        Ergebnis Die aktuelle Zeit seit der Epoche in UTC-Millisekunden. Siehe auch:
        getTime(),setTimeInMillis(long)
      • setTimeInMillis

        public void setTimeInMillis​(long millis)
        Setzt die aktuelle Zeit dieses Calendar-Objekts aus dem angegebenen long-Wert.
        Parameter
        millis- Die neue Zeit in UTC-Millisekunden seit der Epoche. Siehe auch:
        setTime(Date),getTimeInMillis()
      • get

        public int get​(int field)
        Gibt den Wert des angegebenen Kalenderfelds zurück. Im lenient Modus werden alle Kalenderfelder normalisiert. Im non-lenient Modus werden alle Kalenderfelder geprüft. Die Methode löst eine Ausnahme aus, wenn ein Kalenderfeld einen Wert außerhalb des Bereichs hat. Normalisierung und Prüfung übernimmt diecomplete()Methode. Diese Methode hängt vom Kalendersystem ab.
        Parameter
        字段- Das angegebene Kalenderfeld. Rückgabewert Der Wert des angegebenen Kalenderfelds. Ausnahme
        ArrayIndexOutOfBoundsException - Wenn das angegebene Feld außerhalb des Bereichs liegt ( field < 0 || field >= FIELD_COUNT). Siehe auch:
        set(int,int),complete()
      • internalGet

        protected final int internalGet​(int field)
        Gibt den Wert des angegebenen Kalenderfelds zurück. Die Methode normalisiert oder prüft den Feldwert nicht.
        Parameter
        字段- Das angegebene Kalenderfeld. Rückgabewert Der Wert des angegebenen Kalenderfelds. Siehe auch:
        get(int)
      • set

        public void set​(int field,
                        int value)
        Setzt das angegebene Kalenderfeld auf den angegebenen Wert. Die Methode interpretiert den Wert unabhängig vom lenient Modus nicht.
        Parameter
        字段- Das angegebene Kalenderfeld.
        value- Der Wert, der für das angegebene Kalenderfeld gesetzt werden soll. Ausnahme
        ArrayIndexOutOfBoundsException - Wenn das angegebene Feld außerhalb des Bereichs liegt ( field < 0 || field >= FIELD_COUNT). Im non-lenient Modus. Siehe auch:
        set(int,int,int),set(int,int,int,int,int),set(int,int,int,int,int,int),get(int)
      • set

        public final void set​(int year,
                              int month,
                              int date)
        Setzt die Werte der KalenderfelderYEAR , MONTH和DAY_OF_MONTH. Andere Kalenderfelder behalten ihre vorherigen Werte. Rufen Sie bei Bedarf zuerstclear()auf.
        Parameter
        year - 用于设置 YEARKalenderfeld.
        month - 用于设置MONTHKalenderfeld. Der Monatswert basiert auf 0. Zum Beispiel steht 0 für Januar.
        date - 用于设置 DAY_OF_MONTHDer Wert des Kalenderfelds. Siehe auch:
        set(int,int),set(int,int,int,int,int),set(int,int,int,int,int,int)
      • set

        public final void set​(int year,
                              int month,
                              int date,
                              int hourOfDay,
                              int minute)
        Setzt den Wert eines KalenderfeldsYEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY和MINUTE. Andere Felder behalten ihren vorherigen Wert. Falls nicht benötigt, rufen Sie zuerstclear()auf.
        Parameter
        year - 用于设置 YEARKalenderfelds.
        month - 用于设置MONTHKalenderfelds. Der Monatswert basiert auf 0. Zum Beispiel steht 0 für Januar.
        date - 用于设置 DAY_OF_MONTHKalenderfelds.
        hourOfDay - 用于设置 HOUR_OF_DAYKalenderfelds.
        minute - 用于设置 MINUTEKalenderfelds. Siehe auch:
        set(int,int),set(int,int,int),set(int,int,int,int,int,int)
      • set

        public final void set​(int year,
                              int month,
                              int date,
                              int hourOfDay,
                              int minute,
                              int second)
        Setzt den Wert im FeldYEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和SECOND. Andere Felder behalten ihren vorherigen Wert. Falls nicht benötigt, rufen Sie zuerstclear()auf.
        Parameter
        year - 用于设置 YEARKalenderfelds.
        month - 用于设置MONTHKalenderfelds. Der Monatswert basiert auf 0. Zum Beispiel steht 0 für Januar.
        date - 用于设置 DAY_OF_MONTHKalenderfelds.
        hourOfDay - 用于设置 HOUR_OF_DAYKalenderfelds zu setzen.
        minute - 用于设置 MINUTEKalenderfelds zu setzen.
        second - 用于设置 SECONDKalenderfelds zu setzen. Siehe auch:
        set(int,int),set(int,int,int),set(int,int,int,int,int)
      • clear

        public final void clear()
        Setzt alle Kalenderfeldwerte und Zeitwerte diesesCalendarObjekts auf undefined (Millisekunden-Offset zur Epoch). Das bedeutet,isSet()dass für alle Kalenderfelderfalsezurückgegeben wird. Die Datums- und Zeitberechnung behandelt die Felder, als wären sie nie gesetzt worden.CalendarDie implementierende Klasse verwendet für die Datums- und Zeitberechnung ihre spezifischen Standardfeldwerte. Wenn zum Beispiel derYEARFeldwert undefined ist, verwendetGregorianCalendardas Jahr 1970.
        Siehe auch:
        clear(int)
      • clear

        public final void clear​(int field)
        Setzt den gegebenen Kalenderfeldwert und die Zeitwerte diesesCalendarObjekts auf undefined (Millisekunden-Offset zur Epoch). Das bedeutet,isSet(field)dassfalsezurückgegeben wird. Die Datums- und Zeitberechnung behandelt das Feld, als wäre es nie gesetzt worden.CalendarDie implementierende Klasse verwendet für die Datums- und Zeitberechnung den spezifischen Standardwert des Felds. Die

        HOUR_OF_DAY-,HOUR- undAM_PM-Felder werden unabhängig behandelt. Dabei gilt die resolution rule for the time of day. Das Löschen eines dieser Felder setzt den Stundenwert diesesCalendarObjekts nicht zurück. Verwenden Sieset(Calendar.HOUR_OF_DAY, 0), um den Stundenwert zurückzusetzen.

        Parameter
        字段- Das zu löschende Kalenderfeld. Siehe auch:
        clear()
      • isSet

        public final boolean isSet​(int field)
        Ermittelt, ob das gegebene Kalenderfeld einen Wert hat. Das umfasst auch Werte, die durch die interne Feldberechnung nach einemgetMethodenaufruf gesetzt wurden.
        Parameter
        字段- Das zu prüfende Kalenderfeld. Rückgabewert
        truetrue, wenn das gegebene Kalenderfeld einen Wert hat; andernfallsfalse.
      • getDisplayName

        public String getDisplayName​(int field,
                                     int style,
                                     Locale locale)
        Gibt für das gegebenestyle和locale日历字段Die String-Darstellung des Wertslocale. Wenn keine passende String-Darstellung existiert, wirdnullzurückgegeben. Wenn die String-Darstellung für den gegebenen Kalender字段gilt, ruft diese Methodeget(field)auf, um den Kalenderwert字段zu erhalten. Zum Beispiel: Wenn dieses

        Calendar是GregorianCalendarund sein Datum 2005-01-01 ist, dannMONTHist die String-Darstellung des Felds im englischen Gebietsschema im langen Stil „Januar“ oder im kurzen Stil „Jan“. AberDAY_OF_MONTHfür das Feld existiert keine String-Darstellung, daher gibt diese Methodenull 。

        Die Standardimplementierung unterstützt Kalenderfelder, derenDateFormatSymbolsim gegebenen Namenlocale 。

        Parameter
        字段- das Kalenderfeld, dessen String-Darstellung zurückgegeben wird
        style- der Stil, der auf die String-Darstellung angewendet wird; einer vonSHORT_FORMAT(SHORT),SHORT_STANDALONE,LONG_FORMAT(LONG),LONG_STANDALONE,NARROW_FORMAToderNARROW_STANDALONE.
        locale - das Gebietsschema für die String-Darstellung (jeder durch localeangegebene Kalendertyp wird ignoriert) Ergebnis Die String-Darstellung des gegebenen
        字段im gegebenen style字符串表示 style wenn keine passende String-Darstellung existiert style , null. Ausnahmen
        IllegalArgumentException - 如果 字段oder style无效,或者此 Calendarnicht tolerant ist und ein Kalenderfeld einen ungültigen Wert hat
        NullPointerException - 如果 localenull ist Seit Version: 1.6
      • getDisplayNames

        public Map<String,​Integer> getDisplayNames​(int field,
                                                         int style,
                                                         Locale locale)
        Gibt zurückMapDiese enthält für das angegebenestyle和locale日历字段alle Namen mit den zugehörigen Feldwerten. Enthält diesesCalendarbeispielsweiseGregorianCalendar, enthält die zurückgegebene Map „Jan“ bisJANUARYund „Feb“ bisFEBRUARYund so weiter im short-Stil des englischen Gebietsschemas. Wegen der einzelnen Zeichen sind schmale Namen nicht eindeutig, zum Beispiel „S“ für Sonntag und Samstag. In diesem Fall sind die schmalen Namen nicht in der zurückgegebenen

        Map 。

        Das Programm berücksichtigt die Werte anderer Kalenderfelder, um eine Gruppe von Anzeigenamen zu bestimmen. Ist diesesCalendarbeispielsweise ein lunisolarer Kalender und enthält dasYEARFeld einen Jahreswert mit Schaltmonat, gibt die Methode Monatsnamen mit dem Namen des Schaltmonats zurück. Die Monatsnamen werden dann auf jahresspezifische Monatsnamen abgebildet.

        Die Standardimplementierung unterstützt die Anzeigenamen, die inDateFormatSymbolsenthalten sind. Ist字段beispielsweiseMONTHund iststylegleichALL_STYLES, gibt diese Methode eineMapzurück, die alle Zeichenketten enthält, die vonDateFormatSymbols.getShortMonths()undDateFormatSymbols.getMonths()zurückgegeben werden.

        Parameter
        字段- das Kalenderfeld, für das die Anzeigenamen zurückgegeben werden
        style- der Stil, der auf die Zeichenketten-Darstellung angewendet wird. Einer vonSHORT_FORMAT(SHORT),SHORT_STANDALONE,LONG_FORMAT(LONG),LONG_STANDALONE,NARROW_FORMAToderNARROW_STANDALONE
        locale- das Gebietsschema für die Anzeigenamen Ergebnis Eine
        Mapmit allen Anzeigenamen style和 localeund ihren Feldwerten, oder nullwenn keine Anzeigenamen für 字段
        definiert sind Ausnahmen
        IllegalArgumentException - 如果 字段oder style无效,或者此 Calendarnicht lax ist und ein Kalenderfeld einen ungültigen Wert hat
        NullPointerException - 如果 localeleer ist. Seit Version: 1.6
      • complete

        protected void complete()
        Füllt alle nicht gesetzten Felder in den Kalenderfeldern. Zuerst wird die MethodecomputeTime()aufgerufen, falls der Zeitwert (Millisekunden-Offset von der Epoch) noch nicht aus den Kalenderfeldwerten berechnet wurde. Dann wird die MethodecomputeFields()aufgerufen, um alle Kalenderfeldwerte zu berechnen.
      • getAvailableCalendarTypes

        public static Set<String> getAvailableCalendarTypes()
        Gibt eine nicht veränderbareSetzurück, die alle Kalendertypen enthält, dieCalendarin der Laufzeitumgebung unterstützt. Die verfügbaren Kalendertypen können für Unicode locale extensions verwendet werden. Die zurückgegebeneSetenthält mindestens"gregory". Die Kalendertypen enthalten keine Aliase, zum Beispiel"gregorian" ( "gregory" 。
        Ergebnis Eine nicht veränderbare
        Set
        mit allen verfügbaren Kalendertypen. Seit Version: 1.8 Siehe auch:
        getCalendarType(),Calendar.Builder.setCalendarType(String),Locale.getUnicodeLocaleType(String)
      • getCalendarType

        public String getCalendarType()
        Gibt den Kalendertyp diesesCalendarzurück. Der Kalendertyp wird durch die Spezifikation Unicode Locale Data Markup Language (LDML) definiert. Die Standardimplementierung dieser Methode gibt den Klassennamen dieses

        Calendar-Objekts zurück. Jede Unterklasse, die ein durch LDML definiertes Kalendersystem implementiert, muss diese Methode überschreiben, um den passenden Kalendertyp zurückzugeben.

        Ergebnis Der durch LDML definierte Kalendertyp oder der Klassenname dieses
        Calendar-Objekts. Seit Version: 1.8 Siehe auch: Locale extensions ,
        Locale.Builder.setLocale(Locale),Locale.Builder.setUnicodeLocaleKeyword(String, String)
      • equals

        public boolean equals​(Object obj)
        Vergleicht diesesCalendarmit dem angegebenenObject. Das Ergebnis istCalendar, genau dann wenn das Argument eintrue -Objekt desselben Kalendersystems ist. Dieses Objekt muss unter demselbenCalendar-Parameter denselben Zeitwert (Millisekunden-Offset von der Epoch) darstellen. Der

        Calendar-Parameter besteht aus den Werten, die vonisLenient , getFirstDayOfWeek , getMinimalDaysInFirstWeek和getTimeZonedargestellt werden. Wenn zwischen den Parametern der beidenCalendarein Unterschied besteht, gibt diese Methode zurückfalse 。

        VerwendungcompareToDie Methode vergleicht nur Zeitwerte.

        Überschreibt:
        equals类 Object
        Parameter
        obj- Das Objekt, mit dem verglichen wird. Rückgabewert
        true`true`, wenn dieses Objekt gleichobjist; andernfallsfalse. Siehe auch:
        Object.hashCode(),HashMap
      • before

        public boolean before​(Object when)
        Gibt zurück, ob diesesCalendar是否表示指定的Objectdargestellten Zeit repräsentiert. Diese Methode entspricht:
           compareTo(when) < 0  
        当且仅当when是Calendar-Beispiel ist. Andernfalls gibt die Methodefalse 。
        Parameter
        when - 待比较的 Object
        Rückgabewert
        true`true`, wenn diese ZeitCalendarvor der durchwhendargestellten Zeit liegt; andernfallsfalse. Siehe auch:
        compareTo(Calendar)
      • after

        public boolean after​(Object when)
        Gibt zurück, ob diesesCalendar是否表示指定的Objectdargestellten Zeit repräsentiert. Diese Methode entspricht:
           compareTo(when) > 0  
        当且仅当when是Calendar-Beispiel ist. Andernfalls gibt die Methodefalse 。
        Parameter
        when - 待比较的 Object
        Rückgabewert
        true如果此Calendar的时间when于when. Siehe auch:falsecompareTo
        compareTo(Calendar)
      • compareTo

        public int compareTo​(Calendar anotherCalendar)
        Objekte anhand der dargestellten Zeitwerte (Millisekunden-Offset ab der Epoch).CalendarSpecified by:
        in interface
        compareTo Parameter Comparable<Calendar>
        - das zu vergleichende
        anotherCalendar - 待比较的 Calendarwenn die durch den Parameter dargestellte Zeit der von diesem dargestellten Zeit entspricht
        0; wenn die Zeit diesesCalendarvor der durch den Parameter dargestellten Zeit liegt, ist der Wert kleiner alsCalendar; wenn die Zeit dieses0nach der durch den Parameter dargestellten Zeit liegt, ist der Wert größer alsCalendar. Ausnahme0- wenn das angegebene
        NullPointerException ist Calendar. null- wenn der Zeitwert des angegebenen
        IllegalArgumentException Objekts wegen ungültiger Kalenderwerte nicht ermittelt werden kann. Seit Version: 1.5 Calendaradd
      • add

        public abstract void add​(int field,
                                 int amount)
        .

        add(Calendar.DAY_OF_MONTH, -5) 。

        - das Kalenderfeld.
        字段- die Zeitmenge, die zum Feld hinzugefügt werden soll. Siehe auch:
        amount,
        roll(int,int)rollset(int,int)
      • roll

        public abstract void roll​(int field,
                                  boolean up)
        liefert. Beim Rollen des Felds Monat oder Calendar.MONTH können andere Felder wie das Datum kollidieren und müssen geändert werden. Zum Beispiel ergibt das Rollen des Monats beim Datum 01/31/96 das Datum 02/29/96. Beim Rollen des Felds Stunde oder Calendar.HOUR_OF_DAY rollt das Programm den Stundenwert im Bereich von 0 bis 23, beginnend bei null.

        getMaximum(Calendar.YEAR)Parameter

        - das Zeitfeld.
        字段- gibt an, ob der Wert des angegebenen Zeitfelds erhöht oder gerollt werden soll. Verwenden Sie true zum Rollen, sonst false. Siehe auch:
        up - 指示是否要汇总或滚动指定时间字段的值。 如果滚动则使用true,否则使用false.
        另请参见:
        add(int,int),set(int,int)
      • roll

        public void roll​(int field,
                         int amount)
        Fügt den angegebenen (vorzeichenbehafteten) Betrag zum angegebenen Kalenderfeld hinzu, ohne größere Felder zu ändern. Ein negativer Betrag bedeutet das Zurückrollen. Hinweis:

        CalendarDiese Standardimplementierung ruft wiederholt die Version auf, die um eine Einheit rolltroll(). Dies führt nicht immer zum richtigen Ergebnis. Wenn zum Beispiel dasDAY_OF_MONTHFeld 31 ist, setzt das Rollen auf Februar den Wert 28. EineGregorianCalendarVersion dieser Funktion behebt dieses Problem. Andere Unterklassen müssen diese Funktion ebenfalls überschreiben, um das richtige Ergebnis zu liefern.

        Parameter
        字段Setzt die Zeitzone mit dem angegebenen Zeitzonenwert.
        amount - Der vorzeichenbehaftete Betrag, der zum Kalenderfeld hinzugefügt 字段wird. Seit Version: 1.2 Siehe auch:
        roll(int,boolean),add(int,int),set(int,int)
      • setTimeZone

        public void setTimeZone​(TimeZone value)
        使用给定的时区值设置时区。
        Parameter
        value- Die angegebene Zeitzone.
      • getTimeZone

        public TimeZone getTimeZone()
        Gibt die Zeitzone zurück.
        Ergebnis Das Zeitzonenobjekt, das diesem Kalender zugeordnet ist.
      • setLenient

        public void setLenient​(boolean lenient)
        Gibt an, ob die Datums-/Zeitinterpretation tolerant ist. Bei toleranter Interpretation wird ein Datum wie „942. Februar 1996" als der 941. Tag nach dem 1. Februar 1996 behandelt. Bei strenger (nicht toleranter) Interpretation löst ein solches Datum eine Ausnahme aus. Der Standardwert ist tolerant.
        Parameter
        lenient - truetrue, wenn der tolerante Modus eingeschaltet werden soll;falsefalse, wenn er ausgeschaltet werden soll. Siehe auch:
        isLenient(),DateFormat.setLenient(boolean)
      • isLenient

        public boolean isLenient()
        Gibt an, ob die Datums-/Zeitinterpretation tolerant ist.
        Ergebnis
        truetrue, wenn der Interpretationsmodus dieses Kalenders tolerant ist; andernfallsfalsefalse. Siehe auch:
        setLenient(boolean)
      • setFirstDayOfWeek

        public void setFirstDayOfWeek​(int value)
        Legt fest, welcher Tag der erste Tag der Woche ist; zum BeispielSUNDAY在美国, MONDAY在法国。
        Parameter
        value- Der erste Tag der Woche. Siehe auch:
        getFirstDayOfWeek(),getMinimalDaysInFirstWeek()
      • setMinimalDaysInFirstWeek

        public void setMinimalDaysInFirstWeek​(int value)
        Setzt die Mindestanzahl von Tagen, die die erste Woche eines Jahres benötigt. Wenn die erste Woche die Woche mit dem ersten Tag des ersten Monats des Jahres enthält, rufen Sie diese Methode mit dem Wert 1 auf. Wenn sie eine volle Woche sein muss, verwenden Sie den Wert 7.
        Parameter
        value- die Mindestanzahl von Tagen, die die erste Woche eines Jahres benötigt. Siehe auch:
        getMinimalDaysInFirstWeek()
      • getMinimalDaysInFirstWeek

        public int getMinimalDaysInFirstWeek()
        Gibt die Mindestanzahl von Tagen zurück, die die erste Woche eines Jahres benötigt. Wenn die erste Woche die Woche mit dem ersten Tag des ersten Monats des Jahres enthält, gibt diese Methode 1 zurück. Wenn die Mindestanzahl eine volle Woche sein muss, gibt diese Methode 7 zurück.
        Rückgabewert: Die Mindestanzahl von Tagen, die die erste Woche eines Jahres benötigt. Siehe auch:
        setMinimalDaysInFirstWeek(int)
      • isWeekDateSupported

        public boolean isWeekDateSupported()
        Gibt zurück, ob diesesCalendarWochendaten unterstützt. Die Standardimplementierung dieser Methode gibt

        false 。

        Rückgabewert:
        truetrue, wenn diesesCalendarWochendaten unterstützt, andernfallsfalsefalse. Seit: 1.7 Siehe auch:
        getWeekYear(),setWeekDate(int,int,int),getWeeksInWeekYear()
      • setWeekDate

        public void setWeekDate​(int weekYear,
                                int weekOfYear,
                                int dayOfWeek)
        Setzt das Datum diesesCalendarmit den angegebenen Datumsangaben: Wochenjahr, Woche und Wochentag. Anders als bei der

        setMethode werden alle Kalenderfelder undtimeWerte bei der Rückgabe berechnet.

        WennweekOfYearAußerhalb des gültigen Wochen-Jahres-BereichsweekYear , wird derweekYear个weekOfYearim laxen Modus angepasst oderIllegalArgumentExceptionim nicht-laxen Modus eine Ausnahme ausgelöst.

        Die Standardimplementierung dieser Methode löstUnsupportedOperationException 。

        Parameter
        weekYear- das Wochenjahr dieser Woche
        weekOfYear - die Wochennummer basiert auf weekYear
        dayOfWeek- der Wochentagswert:DAY_OF_WEEKeine der Konstanten des Feldes:SUNDAY, ...,SATURDAY. Ausnahmen
        IllegalArgumentException- wenn ein angegebener Datumsspezifikator ungültig ist oder ein Kalenderfeld im nicht-laxen Modus nicht zum angegebenen Datumsspezifikator passt
        UnsupportedOperationException - 如果此 Calendarkeine Wochenjahr-Nummerierung unterstützt. Seit Version: 1.7 Siehe auch:
        isWeekDateSupported(),getFirstDayOfWeek(),getMinimalDaysInFirstWeek()
      • getMinimum

        public abstract int getMinimum​(int field)
        Gibt denCalendar实例的给定日历字段的CalendarInstanz zurück. Der Minimalwert ist definiert alsgetder kleinste Wert, den die Methode für einen beliebigen möglichen Zeitwert zurückgibt. Der Minimalwert hängt von den kalenderspezifischen Parametern der Instanz ab.
        Parameter
        字段- das Kalenderfeld. Ergebnis Der Minimalwert des angegebenen Kalenderfelds. Siehe auch:
        getMaximum(int),getGreatestMinimum(int),getLeastMaximum(int),getActualMinimum(int),getActualMaximum(int)
      • getMaximum

        public abstract int getMaximum​(int field)
        gibt für diesesCalendar实例的给定日历字段的Calendar-Höchstwert des angegebenen Kalenderfelds zurück. Der Höchstwert ist definiert alsgetder größte Wert, den die Methode für einen beliebigen Zeitwert zurückgibt. Der Höchstwert hängt von den spezifischen Parametern des Kalendersystems der Instanz ab.
        Parameter
        字段- Kalenderfeld. Ergebnis Der Höchstwert des angegebenen Kalenderfelds. Siehe auch:
        getMinimum(int),getGreatestMinimum(int),getLeastMaximum(int),getActualMinimum(int),getActualMaximum(int)
      • getGreatestMinimum

        public abstract int getGreatestMinimum​(int field)
        gibt für diesesCalendarBeispiel den höchsten Minimalwert des angegebenen Kalenderfelds zurück. Der höchste Minimalwert ist definiert alsgetActualMinimum(int)der größte Wert, den die Methode für einen beliebigen Zeitwert zurückgibt. Der höchste Minimalwert hängt von den spezifischen Parametern des Kalendersystems der Instanz ab.
        Parameter
        字段- Kalenderfeld. Ergebnis Der niedrigste Minimalwert des angegebenen Kalenderfelds. Siehe auch:
        getMinimum(int),getMaximum(int),getLeastMaximum(int),getActualMinimum(int),getActualMaximum(int)
      • getLeastMaximum

        public abstract int getLeastMaximum​(int field)
        gibt für diesesCalendarBeispiel den niedrigsten Maximalwert des angegebenen Kalenderfelds zurück. Der niedrigste Maximalwert ist definiert alsgetActualMaximum(int)der kleinste Wert, den die Methode für einen beliebigen Zeitwert zurückgibt. Der niedrigste Maximalwert hängt von den spezifischen Parametern des Kalendersystems der Instanz ab. Zum BeispielCalendargibt die Methode für das Feld im gregorianischen Kalender den Wert 28 DAY_OF_MONTHzurück, weil der 28. Februar im gregorianischen Kalender der letzte Tag des kürzesten Monats in einem Gemeinjahr ist.
        Parameter
        字段- Kalenderfeld. Ergebnis Der niedrigste Maximalwert des angegebenen Kalenderfelds. Siehe auch:
        getMinimum(int),getMaximum(int),getGreatestMinimum(int),getActualMinimum(int),getActualMaximum(int)
      • getActualMinimum

        public int getActualMinimum​(int field)
        Gibt für den Zeitwert diesesCalendarBeispiels denCalendarDie Standardimplementierung dieser Methode verwendet einen iterativen Algorithmus, um den tatsächlichen Minimalwert des Kalenderfelds zu bestimmen. Unterklassen überschreiben sie nach Möglichkeit mit einer effizienteren Implementierung. In vielen Fällen genügt die Rückgabe von

        getMinimum() 。

        Parameter
        字段- Kalenderfeld Ergebnis der Wert des
        Calendarangegebenen Kalenderfelds dieses Zeitwerts Calendar
        Seit Version: 1.2 Siehe auch:
        getMinimum(int),getMaximum(int),getGreatestMinimum(int),getLeastMaximum(int),getActualMaximum(int)
      • getActualMaximum

        public int getActualMaximum​(int field)
        Gibt für den Zeitwert diesesCalendarObjekts den maximal möglichen Wert des angegebenen Kalenderfelds zurück.CalendarBeispielsweise beträgt der tatsächliche Maximalwert des FeldsMONTHin manchen Jahren 12, im hebräischen Kalendersystem in anderen Jahren 13. Die Standardimplementierung dieser Methode verwendet einen iterativen Algorithmus, um den tatsächlichen Maximalwert des Kalenderfelds zu bestimmen. Unterklassen müssen diese Methode nach Möglichkeit mit einer effizienteren Implementierung überschreiben.

        Parameter
        字段- Kalenderfeld Ergebnis der Wert des
        Calendarangegebenen Kalenderfelds dieses Zeitwerts Calendar
        Seit Version: 1.2 Siehe auch:
        getMinimum(int),getMaximum(int),getGreatestMinimum(int),getLeastMaximum(int),getActualMinimum(int)
      • clone

        public Object clone()
        Erstellt eine Kopie dieses Objekts und gibt sie zurück.
        Überschreibt:
        clonein der Klasse Object
        Ergebnis Eine Kopie dieses Objekts. Siehe auch:
        Cloneable
      • toString

        public String toString()
        Gibt eine Zeichenfolgendarstellung dieses Kalenders zurück. Diese Methode dient nur Debug-Zwecken. Das Format des zurückgegebenen Strings variiert je nach Implementierung. Der zurückgegebene String ist leer, aber nichtnull 。
        Überschreibt:
        toStringin der Klasse Object
        Ergebnis Eine Zeichenfolgendarstellung dieses Kalenders.
      • toInstant

        public final Instant toInstant()
        Konvertiert dieses Objekt in einInstant. Die Konvertierung erzeugt ein

        Instant , das denselben Punkt auf der Zeitlinie wie diesesCalendarObjekt darstellt.

        Ergebnis Ein Instant, das denselben Punkt auf der Zeitlinie darstellt. Seit Version: 1.8