Java-Datum/Uhrzeit
Das Folgende ist ein Vergleich der Hauptkategorien und eine Zusammenfassung der gängigen Methoden:
| Kategorie | Hauptklassen | Threadsicher | Veränderbarkeit | Java-Version | Funktionen |
|---|---|---|---|---|---|
| Legacy-Datum | Date, Calendar,GregorianCalendar | nein | Veränderbar | 1.0+ | Viele Designfehler, nicht empfohlen |
| Neue Datums-/Zeit-API | LocalDate, LocalTime, LocalDateTime, ZonedDateTime, ChronoUnit | Ja | Unveränderlich | 8+ | Gut durchdacht, empfohlen |
| Zeitstempel | Instant | Ja | Unveränderlich | 8+ | Maschinenzeit, auf Nanosekunden genau |
| Formatierung | DateTimeFormatter | Ja | Unveränderlich | 8+ | Threadsichere Formatierungsklasse |
LocalDate/DateTimeFormatter
LocalDate/DateTimeFormatter sind in Java 8 eingeführte Datumsklassen. LocalDate wird verwendet, um ein Datum ohne Uhrzeit (Jahr-Monat-Tag) darzustellen, und DateTimeFormatter wird verwendet, um Datum-Zeit-Objekte zu formatieren und zu parsen.
Beispiel
import java.time.format.DateTimeFormatter;
public class ExampleTest {
public static void main(String[] args) {
// Aktuelles Datum abrufen
LocalDate today = LocalDate.now();
System.out.println("Aktuelles Datum: " + today);
// Ein bestimmtes Datum erstellen
LocalDate nationalDay = LocalDate.of(2025, 10, 1);
System.out.println("Nationalfeiertag: " + nationalDay);
// Datumsaddition und -subtraktion
LocalDate tomorrow = today.plusDays(1);
LocalDate nextMonth = today.plusMonths(1);
LocalDate lastYear = today.minusYears(1);
System.out.println("Morgen: " + tomorrow);
System.out.println("Nächster Monat: " + nextMonth);
System.out.println("Gleicher Tag letztes Jahr: " + lastYear);
}
}
Die Ausgabe des obigen Beispiels ist:
当前日期: 2025-05-01 国庆节: 2025-10-01 明天: 2025-05-02 下个月: 2025-06-01 去年今天: 2024-05-01
-
Neue Projekte sollten das Paket java.time bevorzugen (Java 8+)
-
Vermeiden Sie die Verwendung der veralteten Date- und Calendar-Klassen
-
Zeitzonenverwendung klar unterscheiden:
-
Keine Zeitzone erforderlich: LocalDate/LocalTime/LocalDateTime
-
Zeitzone erforderlich: ZonedDateTime
-
-
Beachten Sie die Thread-Sicherheit beim Formatieren: Verwenden Sie DateTimeFormatter statt SimpleDateFormat
-
Datenbankinteraktion:
-
JDBC 4.2+ unterstützt java.time-Typen nativ
-
Ältere Versionen können zu java.sql.Date/Timestamp konvertieren
-
1. LocalDate (Datum)
Beispiel
LocalDate date = Local.of(2023, Month.JUNE, 15);
int year = date.getYear(); // 2023
Month month = date.getMonth(); // JUNE
int day = date.getDayOfMonth(); // 15
LocalDate nextWeek = today.plusWeeks(1);
boolean isLeap = date.isLeapYear(); // Ist es ein Schaltjahr?
2. LocalTime (Uhrzeit)
Beispiel
LocalTime time = LocalTime.of(14, 30, 45); // 14:30:45
int hour = time.getHour(); // 14
int minute = time.getMinute(); // 30
LocalTime nextHour = time.plusHours(1);
3. LocalDateTime (Datum und Uhrzeit)
Beispiel
LocalDateTime dt = LocalDateTime.of(2023, 6, 15, 14, 30);
LocalDateTime nextMonth = dt.plusMonths(1);
4. ZonedDateTime (Datum und Uhrzeit mit Zeitzone)
Beispiel
ZonedDateTime nyTime = zdt.withZoneSameInstant(ZoneId.of("America/New_York"));
ZoneId zone = zdt.getZone(); // Zeitzone abrufen
5. Instant (Zeitstempel)
Beispiel
Instant later = now.plusSeconds(60); // 60 Sekunden später
long epochMilli = now.toEpochMilli(); // Millisekunden-Zeitstempel abrufen
Date-Klasse
Das Paket java.util stellt die Date-Klasse bereit, um das aktuelle Datum und die aktuelle Uhrzeit zu kapseln. Die Date-Klasse stellt zwei Konstruktoren bereit, um Date-Objekte zu instanziieren.
Der erste Konstruktor initialisiert das Objekt mit dem aktuellen Datum und der aktuellen Uhrzeit.
Der zweite Konstruktor akzeptiert einen Parameter, und zwar die Anzahl der Millisekunden seit dem 1. Januar 1970.
Nachdem ein Date-Objekt erstellt wurde, können die folgenden Methoden aufgerufen werden.
| Nein. | Methoden und Beschreibung |
|---|---|
| 1 |
boolean after(Date date) Gibt true zurück, wenn das Date-Objekt, das diese Methode aufruft, nach dem angegebenen Datum liegt; andernfalls wird false zurückgegeben. |
| 2 |
boolean before(Date date) Gibt true zurück, wenn das Date-Objekt, das diese Methode aufruft, vor dem angegebenen Datum liegt; andernfalls wird false zurückgegeben. |
| 3 |
Object clone( ) Gibt eine Kopie dieses Objekts zurück. |
| 4 |
int compareTo(Date date) Vergleicht das Date-Objekt, das diese Methode aufruft, mit dem angegebenen Datum. Gibt 0 zurück, wenn beide gleich sind. Gibt eine negative Zahl zurück, wenn das aufrufende Objekt vor dem angegebenen Datum liegt. Gibt eine positive Zahl zurück, wenn das aufrufende Objekt nach dem angegebenen Datum liegt. |
| 5 |
int compareTo(Object obj) Wenn obj vom Typ Date ist, entspricht die Operation compareTo(Date). Andernfalls wird eine ClassCastException ausgelöst. |
| 6 |
boolean equals(Object date) Gibt true zurück, wenn das Date-Objekt, das diese Methode aufruft, gleich dem angegebenen Datum ist; andernfalls wird false zurückgegeben. |
| 7 |
long getTime( ) Gibt die Anzahl der Millisekunden zurück, die von diesem Date-Objekt seit dem 1. Januar 1970, 00:00:00 GMT, repräsentiert werden. |
| 8 |
int hashCode( ) Gibt den Hashcode-Wert dieses Objekts zurück. |
| 9 |
void setTime(long time) Legt die Uhrzeit und das Datum anhand der Anzahl der Millisekunden seit dem 1. Januar 1970, 00:00:00 GMT fest. |
| 10 |
String toString( ) Konvertiert dieses Date-Objekt in einen String der Form: dow mon dd hh:mm:ss zzz yyyy, wobei: dow ein Wochentag ist (Sun, Mon, Tue, Wed, Thu, Fri, Sat). |
Aktuelles Datum und aktuelle Uhrzeit abrufen
Das Abrufen des aktuellen Datums und der aktuellen Uhrzeit in Java ist einfach: Verwenden Sie die toString()-Methode des Date-Objekts, um das aktuelle Datum und die aktuelle Uhrzeit auszugeben, wie unten gezeigt:
Beispiel
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
Mon May 04 09:51:52 CDT 2013
Date-Vergleich
Java verwendet die folgenden drei Methoden, um zwei Datumsangaben zu vergleichen:
- Verwenden Sie die Methode getTime(), um zwei Datumsangaben abzurufen (die Anzahl der seit dem 1. Januar 1970 verstrichenen Millisekunden), und vergleichen Sie dann diese beiden Werte.
- Verwenden Sie die Methoden before(), after() und equals(). Wenn beispielsweise der 12. eines Monats früher als der 18. liegt, dann gibtnew Date(99, 2, 12).before(new Date (99, 2, 18))true zurück.
- Verwenden Sie die Methode compareTo(), die durch das Comparable-Interface definiert wird und von der Klasse Date implementiert wird.
1. Vergleich mit der Methode getTime()
Diese Methode vergleicht Datumsangaben, indem sie die Anzahl der Millisekunden seit dem 1. Januar 1970 (Unix-Epoche) der Datumsobjekte vergleicht.
Beispiel
public class DateComparison {
public static void main(String[] args) {
Date date1 = new Date(121, 5, 15); // 15. Juni 2021
Date date2 = new Date(121, 5, 20); // 20. Juni 2021
// Millisekunden vergleichen
if (date1.getTime() < date2.getTime()) {
System.out.println("date1 ist vor date2");
} else if (date1.getTime() > date2.getTime()) {
System.out.println("date1 liegt nach date2");
} else {
System.out.println("Die beiden Datumswerte sind gleich");
}
}
}
Ausgabe:
date1 在 date2 之前
2. Verwenden Sie die Methoden before(), after() und equals()
Diese Methoden sind eingebaute Vergleichsmethoden der Date-Klasse mit klarerer Semantik.
Beispiel
public class DateComparison {
public static void main(String[] args) {
Date date1 = new Date(121, 5, 15); // 15. Juni 2021
Date date2 = new Date(121, 5, 20); // 20. Juni 2021
// before()-Methode verwenden
System.out.println("Liegt date1 vor date2? " + date1.before(date2));
// after()-Methode verwenden
System.out.println("Liegt date1 nach date2? " + date1.after(date2));
// equals()-Methode verwenden
System.out.println("Sind die beiden Datumsangaben gleich? " + date1.equals(date2));
}
}
Ausgabe:
date1 在 date2 之前吗? true date1 在 date2 之后吗? false 两个日期相同吗? false
3. compareTo()-Methode verwenden
Die Klasse Date implementiert das Comparable-Interface und kann mit der compareTo()-Methode verglichen werden.
Beispiel
public class DateComparison {
public static void main(String[] args) {
Date date1 = new Date(121, 5, 15); // 15. Juni 2021
Date date2 = new Date(121, 5, 20); // 20. Juni 2021
int result = date1.compareTo(date2);
if (result < 0) {
System.out.println("date1 ist vor date2");
} else if (result > 0) {
System.out.println("date1 liegt nach date2");
} else {
System.out.println("Die beiden Datumswerte sind gleich");
}
}
}
Ausgabe:
date1 在 date2 之前
Formatieren von Datumsangaben mit SimpleDateFormat
SimpleDateFormat ist eine Klasse, die Datumsangaben auf localeabhängige Weise formatiert und parst. Mit SimpleDateFormat können Sie ein beliebiges benutzerdefiniertes Datums-/Uhrzeitformat zum Ausführen auswählen. Zum Beispiel:
Beispiel
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
Diese Codezeile legt das Konvertierungsformat fest, wobei yyyy für das vollständige Jahr, MM für den Monat, dd für den Tag und HH:mm:ss für die Stunde, Minute und Sekunde steht.
Hinweis: Einige Formate sind großgeschrieben und einige kleingeschrieben; zum Beispiel ist MM der Monat, mm die Minuten; HH ist das 24-Stunden-Format, während hh das 12-Stunden-Format ist.
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
当前时间为: 2018-09-06 10:16:34
Formatierungscodes für Datum und Uhrzeit
Die Zeitmuster-Zeichenfolge wird verwendet, um das Zeitformat festzulegen. In diesem Muster sind alle ASCII-Buchstaben als Musterbuchstaben reserviert, die wie folgt definiert sind:
| Buchstabe | Beschreibung | Beispiel |
|---|---|---|
| G | Epochenmarkierung | AD |
| y | Vierstelliges Jahr | 2001 |
| M | Month | Juli oder 07 |
| d | Tag des Monats | 10 |
| h | Stunde im A.M./P.M.-Format (1~12) | 12 |
| H | Stunde des Tages (0~23) | 22 |
| m | Minuten | 30 |
| s | Sekunden | 55 |
| S | Millisekunden | 234 |
| E | Wochentag | Dienstag |
| D | Tag des Jahres | 360 |
| F | Wochentag im Monat | 2 (zweiter Mittwoch im Juli) |
| w | Woche im Jahr | 40 |
| W | Woche im Monat | 1 |
| a | A.M./P.M.-Markierung | PM |
| k | Stunde des Tages (1~24) | 24 |
| K | Stunde im A.M./P.M.-Format (0~11) | 10 |
| z | Zeitzone | Eastern Standard Time |
| ' | Texttrennzeichen | Trennzeichen |
| " | Einfaches Anführungszeichen | ` |
Formatieren von Datumsangaben mit printf
Die printf-Methode kann Uhrzeit und Datum sehr einfach formatieren. Mit einem aus zwei Buchstaben bestehenden Format beginnt sie mit%t%t und endet mit einem der Buchstaben in der folgenden Tabelle.
- %tY: Gibt ein vierstelliges Jahr aus, zum Beispiel: 2023
- %ty: Gibt ein zweistelliges Jahr aus, zum Beispiel: 23
- %tm: Gibt einen zweistelligen Monat aus, zum Beispiel: 02
- %tB: Gibt den vollständigen Namen des Monats aus, zum Beispiel: Februar
- %tb: Gibt die Abkürzung des Monats aus, zum Beispiel: Feb
- %tA: Gibt den vollständigen Namen des Wochentags aus, zum Beispiel: Mittwoch
- %ta: Gibt die Abkürzung des Wochentags aus, zum Beispiel: Mi
- %td: Gibt einen zweistelligen Tag aus, zum Beispiel: 24
- %te: Gibt einen ein- oder zweistelligen Tag aus, zum Beispiel: 24 oder 02
- %tH: Gibt die Stunde im 24-Stunden-Format aus, zum Beispiel: 23
- %tI: Gibt die Stunde im 12-Stunden-Format aus, zum Beispiel: 11
- %tM: Gibt die Minuten aus, zum Beispiel: 45
- %tS: Gibt die Sekunden aus, zum Beispiel: 30
- %tp: Gibt Vormittag oder Nachmittag aus, zum Beispiel: AM oder PM
- %tZ: Gibt die Zeitzone aus, zum Beispiel: GMT+08:00
|
Konvertierungszeichen |
Beschreibung |
Beispiel |
|---|---|---|
|
%tc |
Enthält vollständige Datums- und Zeitinformationen |
Saturday October 27 14:21:20 CST 2007 |
|
%tF |
"Jahr-Monat-Tag"-Format |
2007-10-27 |
|
%tD |
"Monat/Tag/Jahr"-Format |
10/27/07 |
|
%tr |
"HH:MM:SS PM"-Format (12-Stunden-Uhr) |
02:25:51 PM |
|
%tT |
"HH:MM:SS"-Format (24-Stunden-Uhr) |
14:28:16 |
|
%tR |
"HH:MM"-Format (24-Stunden-Uhr) |
14:28 |
MehrprintfWeitere Beispiele zum Parsen finden Sie unter:Java printf-Beispiele für formatierte Ausgabe
Beispiel
Beispiel
public class DateFormatExample {
public static void main(String[] args) {
Date date = new Date();
System.out.printf("%tY-%tm-%td %tH:%tM:%tS %tZ", date, date, date, date, date, date, date);
}
}
Die Ausgabe der Ausführung ist:
2023-02-24 13:34:45 GMT+08:00
Beispiel
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
全部日期和时间信息:星期一 九月 10 10:43:36 CST 2012 年-月-日格式:2012-09-10 月/日/年格式:09/10/12 HH:MM:SS PM格式(12时制):10:43:36 上午 HH:MM:SS格式(24时制):10:43:36 HH:MM格式(24时制):10:43
Wenn Sie das Datum wiederholt angeben müssen, ist die Formatierung jedes Teils auf diese Weise etwas kompliziert. Daher können Sie eine Formatzeichenfolge verwenden, um den Index des zu formatierenden Arguments anzugeben.
Der Index muss unmittelbar auf%% folgen und mit$$ enden. Zum Beispiel:
Beispiel
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
Due date: February 09, 2014
Alternativ können Sie das < Flag verwenden. Es gibt an, dass das zuvor formatierte Argument erneut verwendet werden soll. Zum Beispiel:
Beispiel
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
Due date: February 09, 2014
Die Konvertierungszeichen, die Datumsformate definieren, können das angegebene Konvertierungszeichen verwenden, um einen neuen String aus einem Datum zu erzeugen. Diese Datumskonvertierungszeichen sind unten aufgeführt:
Beispiel
Die Ausgabe ist:
英文月份简称:May 本地月份简称:五月 英文月份全称:May 本地月份全称:五月 英文星期的简称:Thu 本地星期的简称:星期四 年的前两位数字(不足两位前面补0):20 年的后两位数字(不足两位前面补0):17 一年中的天数(即年的第几天):124 两位数字的月份(不足两位前面补0):05 两位数字的日(不足两位前面补0):04 月份的日(前面不补0):4
Zeichenfolgen in Zeit parsen
Die Klasse SimpleDateFormat verfügt über einige zusätzliche Methoden, insbesondere parse(), die versucht, eine Zeichenfolge gemäß dem im angegebenen SimpleDateFormat-Objekt gespeicherten Format zu parsen. Zum Beispiel:
Beispiel
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
$ java DateDemo 1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818 $ java DateDemo 2007-12-01 2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007
Java Sleep
sleep() versetzt den aktuellen Thread in einen suspendierten Zustand (blockiert den aktuellen Thread) und gibt die CPU ab. Der Zweck besteht darin, zu verhindern, dass der aktuelle Thread die vom Prozess erworbenen CPU-Ressourcen monopolisiert, und dadurch anderen Threads etwas Zeit zur Ausführung zu lassen.
Sie können das Programm für eine Millisekunde oder für einen beliebigen Zeitraum bis zur Lebensdauer Ihres Computers schlafen lassen. Zum Beispiel schläft das folgende Programm 3 Sekunden lang:
Beispiel
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
Thu Sep 17 10:20:30 CST 2015 Thu Sep 17 10:20:33 CST 2015
Zeitmessung
Das folgende Beispiel zeigt, wie ein Zeitintervall (in Millisekunden) gemessen wird:
Beispiel
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
Fri Jan 08 09:48:47 CST 2016 Fri Jan 08 09:48:50 CST 2016 Difference is : 3019
Calendar-Klasse
Wir sind nun in der Lage, ein Datumsobjekt zu formatieren und zu erstellen, aber wie können wir bestimmte Teile der Datumsdaten wie Stunde, Tag oder Minute festlegen und abrufen? Und wie können wir Werte zu diesen Teilen des Datums addieren oder davon subtrahieren? Die Antwort ist, die Calendar-Klasse zu verwenden.
Die Calendar-Klasse ist viel leistungsfähiger als die Date-Klasse, und ihre Implementierung ist auch komplexer als die der Date-Klasse.
Die Calendar-Klasse ist eine abstrakte Klasse. In der Praxis implementiert sie Objekte bestimmter Unterklassen. Der Prozess der Objekterstellung ist für Programmierer transparent; Sie müssen nur die Methode getInstance verwenden, um sie zu erstellen.
Erstellen Sie ein Calendar-Objekt, das das aktuelle Datum des Systems darstellt
Calendar c = Calendar.getInstance();//默认是当前日期
Erstellen Sie ein Calendar-Objekt für ein angegebenes Datum
Um die Calendar-Klasse zur Darstellung eines bestimmten Zeitpunkts zu verwenden, müssen Sie zuerst ein Calendar-Objekt erstellen und dann die Parameter Jahr, Monat und Tag dieses Objekts festlegen.
//创建一个代表2009年6月12日的Calendar对象 Calendar c1 = Calendar.getInstance(); c1.set(2009, 6 - 1, 12);
Feldtypen von Objekten der Calendar-Klasse
In der Calendar-Klasse werden die folgenden Konstanten verwendet, um unterschiedliche Bedeutungen darzustellen. Tatsächlich übernehmen viele Klassen im JDK diese Idee.
| Konstante | Beschreibung |
|---|---|
| Calendar.YEAR | Jahr |
| Calendar.MONTH | Month |
| Calendar.DATE | Date |
| Calendar.DAY_OF_MONTH | Date, genau dieselbe Bedeutung wie das Feld oben. |
| Calendar.HOUR | Stunde im 12-Stunden-Format |
| Calendar.HOUR_OF_DAY | Stunde im 24-Stunden-Format |
| Calendar.MINUTE | Minute |
| Calendar.SECOND | second |
| Calendar.DAY_OF_WEEK | Wochentag |
Informationen zum Calendar-Klassenobjekt festlegen
Einstellung festlegen
E.g.:
Calendar c1 = Calendar.getInstance();
Aufruf:
public final void set(int year,int month,int date)
c1.set(2009, 6, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12
Festlegen mithilfe von Feldtypen
Wenn Sie nur ein bestimmtes Feld festlegen, z. B. den Datumswert, können Sie die folgende set-Methode verwenden:
public void set(int field,int value)
Setzen Sie das durch das Objekt c1 repräsentierte Datum auf den 10.; alle anderen Werte werden neu berechnet.
c1.set(Calendar.DATE,10);
Setze das vom c1-Objekt repräsentierte Jahr auf 2008; alle anderen Werte werden neu berechnet.
c1.set(Calendar.YEAR,2008);
Die Bedeutung von set für andere Feldattribute folgt demselben Muster.
Einstellung hinzufügen
Calendar c1 = Calendar.getInstance();
Addiere 10 zum Datum des c1-Objekts, was bedeutet, dass c1 das Datum 10 Tage später repräsentiert; alle anderen Werte werden neu berechnet.
c1.add(Calendar.DATE, 10);
Subtrahiere 10 vom Datum des c1-Objekts, was bedeutet, dass c1 das Datum 10 Tage früher repräsentiert; alle anderen Werte werden neu berechnet.
c1.add(Calendar.DATE, -10);
Die Bedeutung von add für andere Feldattribute folgt demselben Muster.
Abrufen von Informationen zum Calendar-Klassenobjekt
GregorianCalendar-Klasse
Die Klasse Calendar implementiert den gregorianischen Kalender; GregorianCalendar ist eine konkrete Implementierung der Klasse Calendar.
Die Methode getInstance() der Klasse Calendar gibt standardmäßig ein GregorianCalendar-Objekt zurück, das mit der aktuellen Locale und Zeitzone initialisiert wurde. GregorianCalendar definiert zwei Felder: AD und BC. Diese stellen die beiden Epochen dar, die durch den gregorianischen Kalender definiert sind.
Im Folgenden sind mehrere Konstruktoren von GregorianCalendar-Objekten aufgeführt:
| Nein. | Konstruktor und Beschreibung |
| 1 |
GregorianCalendar() Konstruiert einen standardmäßigen GregorianCalendar unter Verwendung der aktuellen Zeit in der Standardzeitzone mit dem Standardgebietsschema. |
| 2 |
GregorianCalendar(int year, int month, int date) Konstruiert einen GregorianCalendar mit der angegebenen Datumseinstellung in der Standardzeitzone mit dem Standardgebietsschema. |
| 3 |
GregorianCalendar(int year, int month, int date, int hour, int minute) Konstruiert einen GregorianCalendar mit der angegebenen Datums- und Uhrzeiteinstellung für die Standardzeitzone mit dem Standardgebietsschema. |
| 4 |
GregorianCalendar(int year, int month, int date, int hour, int minute, int second) Konstruiert einen GregorianCalendar mit der angegebenen Datums- und Uhrzeiteinstellung für die Standardzeitzone mit dem Standardgebietsschema. |
| 5 |
GregorianCalendar(Locale aLocale) Konstruiert einen GregorianCalendar basierend auf der aktuellen Zeit in der Standardzeitzone mit dem angegebenen Gebietsschema. |
| 6 |
GregorianCalendar(TimeZone zone) Konstruiert einen GregorianCalendar basierend auf der aktuellen Zeit in der angegebenen Zeitzone mit dem Standardgebietsschema. |
| 7 |
GregorianCalendar(TimeZone zone, Locale aLocale) Erstellt einen GregorianCalendar basierend auf der aktuellen Zeit in der angegebenen Zeitzone mit dem angegebenen Gebietsschema. |
Hier ist eine Liste einiger nützlicher Methoden, die von der Klasse GregorianCalendar bereitgestellt werden:
| Nein. | Methode und Beschreibung |
| 1 |
void add(int field, int amount) Addiert den angegebenen (vorzeichenbehafteten) Zeitbetrag zum angegebenen Kalenderfeld gemäß den Kalenderregeln. |
| 2 |
protected void computeFields() Konvertiert den UTC-Millisekundenwert in Zeitfeldwerte. |
| 3 |
protected void computeTime() Überschreibt Calendar und konvertiert Zeitfeldwerte in einen UTC-Millisekundenwert. |
| 4 |
boolean equals(Object obj) Vergleicht diesen GregorianCalendar mit dem angegebenen Object. |
| 5 |
int get(int field) Ruft den Zeitwert für das angegebene Feld ab. |
| 6 |
int getActualMaximum(int field) Gibt den maximalen Wert des angegebenen Felds für das aktuelle Datum zurück. |
| 7 |
int getActualMinimum(int field) Gibt den minimalen Wert des angegebenen Felds für das aktuelle Datum zurück. |
| 8 |
int getGreatestMinimum(int field) Gibt den höchsten Mindestwert des angegebenen Kalenderfelds für diese GregorianCalendar-Instanz zurück. |
| 9 |
Date getGregorianChange() Ruft das Datum der gregorianischen Kalenderänderung ab. |
| 10 |
int getLeastMaximum(int field) Gibt den niedrigsten Maximalwert des angegebenen Kalenderfelds für diese GregorianCalendar-Instanz zurück. |
| 11 |
int getMaximum(int field) Gibt den maximalen Wert des angegebenen Kalenderfelds für diese GregorianCalendar-Instanz zurück. |
| 12 |
Date getTime() Ruft die aktuelle Zeit des Kalenders ab. |
| 13 |
long getTimeInMillis() Ruft die aktuelle Zeit des Kalenders als long ab. |
| 14 |
TimeZone getTimeZone() Ruft die Zeitzone ab. |
| 15 |
int getMinimum(int field) Gibt den minimalen Wert des angegebenen Felds zurück. |
| 16 |
int hashCode() Überschreibt hashCode. |
| 17 |
boolean isLeapYear(int year) Bestimmt, ob das angegebene Jahr ein Schaltjahr ist. |
| 18 |
void roll(int field, boolean up) Addiert oder subtrahiert (auf/ab) eine einzelne Zeiteinheit im angegebenen Zeitfeld, ohne größere Felder zu ändern. |
| 19 |
void set(int field, int value) Setzt das Zeitfeld auf den angegebenen Wert. |
| 20 |
void set(int year, int month, int date) Setzt die Werte für Jahr, Monat und Tag. |
| 21 |
void set(int year, int month, int date, int hour, int minute) Setzt die Werte für Jahr, Monat, Tag, Stunde und Minute. |
| 22 |
void set(int year, int month, int date, int hour, int minute, int second) Setzt die Werte für Jahr, Monat, Tag, Stunde, Minute und Sekunde. |
| 23 |
void setGregorianChange(Date date) Legt das Änderungsdatum des GregorianCalendar fest. |
| 24 |
void setTime(Date date) Setzt die aktuelle Zeit des Calendar auf das angegebene Datum. |
| 25 |
void setTimeInMillis(long millis) Setzt die aktuelle Zeit des Calendar auf den angegebenen long-Millisekundenwert. |
| 26 |
void setTimeZone(TimeZone value) Setzt die aktuelle Zeitzone auf den angegebenen Zeitzonenwert. |
| 27 |
String toString() Gibt eine Zeichenfolge zurück, die den Kalender repräsentiert. |
Beispiel
Beispiel
Das Ergebnis des Kompilierens und Ausführens des obigen Beispiels ist wie folgt:
Date: Apr 22 2009 Time: 11:25:27 当前年份不是闰年
Eine vollständige Liste der Calendar-Klasse finden Sie in der Standard-Java-Dokumentation。
Weitere Erweiterungen