Holen Sie sich den aktuellen Zeitstempel im ISO 8601-Format
- Bedeutung und Verwendung des ISO 8601-Formats in Java
-
Verwendung von
T
undZ
im ISO 8601-Format - Konvertieren Sie den aktuellen Zeitstempel mithilfe der UTC-Zeitzone in ISO 8601
- Vorteile der Verwendung des ISO 8601-Formats
In Java oder jeder anderen Programmiersprache ist das Konvertieren einer Zeichenfolge eine der grundlegenden Fähigkeiten. Es ist ziemlich einfach, ein Datum im String-Format zu speichern und es dann in das Date
-Objekt umzuwandeln, um im Projekt voranzukommen.
In diesem Artikel erfahren Sie, wie Sie den aktuellen Zeitstempel im ISO 8601-Format erhalten. Beginnen wir mit dem Erlernen des ISO 8601-Formats und warum und wie wir es in unserem Projekt verwenden können.
Bedeutung und Verwendung des ISO 8601-Formats in Java
Datums- und Zeitformate sind besonders wichtig, wenn wir Konferenzen und Besprechungen organisieren oder mit unseren Kunden verhandeln müssen. In diesem digitalen Zeitalter scheint es jedoch nicht einfach zu sein, ein Standardformat zur Angabe verschiedener Zeitzonen weltweit zu haben, das für alle leicht verständlich ist.
Das internationale Standardformat ISO 8601 ist dasjenige, das genau dieses Problem löst. Unter Verwendung des Datums-/Uhrzeitformats der internationalen Organisation für Standardisierung (ISO) können wir ein numerisches Datum/eine numerische Uhrzeit angeben, wobei die Uhrzeit optional ist.
Alle Beteiligten über die Grenzen hinweg können das Datum/die Uhrzeit mit diesem internationalen Standard angeben. Denken Sie daran, dass die Datumsdarstellung nach ISO 8601 auf dem Gregorianischen Kalender basiert.
Im ISO 8601-Format geben wir ein Datum/eine Uhrzeit an, beginnend mit einem Jahr, gefolgt von Monat, Tag, Stunde, Minuten, Sekunden und Millisekunden.
Zum Beispiel zeigt 2022-09-30 15:00:00.000
den 30. September 2022 um 15:00 Uhr (dieser Zeitstempel ist in Ortszeit, da wir den Zonenoffset nicht angegeben haben, was wir später in diesem Tutorial lernen werden). Es folgt die tabellarische Darstellung von Datum/Uhrzeit nach ISO 8601.
ISO 8601-Format | Wertebereich |
---|---|
Jahr (J ) |
YYYY , vierstellig. Wir können es auch auf zwei Ziffern abkürzen. |
Monat (M ) |
MM , 01-12 |
Woche (W ) |
WW , 01-53 |
Tag (D ) |
D , Wochentag, 1-7 |
Stunde (h ) |
hh , 00-23 wobei 24:00:00 als Endzeit |
Minuten (m ) |
mm , 00-59 |
Sekunden (s ) |
ss , 00-59 |
Dezimalbruch (f ) |
Sekundenbruchteile, jeder Grad an Genauigkeit |
Verwendung von T
und Z
im ISO 8601-Format
Angenommen, wir haben einen Zeitstempel 2022-09-30T20:18:46.384Z
. T
steht hier für nichts; es ist nur ein Trennzeichen, das vom ISO 8601-Datums-/Uhrzeitformat gefordert wird.
Wir können T
als Abkürzung für Time lesen, während Z
für Null-Zeitstempel verwendet wird, weil es um 0 von einer UTC (Coordinated Universal Time) versetzt ist.
Lassen Sie uns die Verwendung von T
und Z
anhand der folgenden Beispiele verstehen.
2022-09-30T15:50+00
– 15:30 Uhr am 30. September 2022 in einer universellen Zeitzone.2022-09-30T15:50+00Z
- 15:30 Uhr am 30. September 2022 in einer Zeitzone der Weltzeit mit dem ZusatzZ
in der Notation.2022-09-30T15:50-04:00
– 15:30 Uhr am 30. September 2022 in einer Zeitzone in New York (UTC mit Sommerzeit).
Wir haben genug über das ISO 8601-Datumsformat gelernt. Mal sehen, wie wir es in Java machen und das aktuelle Datum/die aktuelle Uhrzeit in UTC erhalten.
Konvertieren Sie den aktuellen Zeitstempel mithilfe der UTC-Zeitzone in ISO 8601
Beispielcode:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Test {
public static void main(String args[]) {
TimeZone timezone = TimeZone.getTimeZone("UTC");
//"Z" indicates UTC, which means no timezone offset
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
dateFormat.setTimeZone(timezone);
String ISODate = dateFormat.format(new Date());
System.out.println(ISODate);
}
}
Ausgang:
2022-09-30T07:20:52Z
In der main()
-Methode von Test
verwenden wir zuerst die getTimeZone()
-Methode, die ein String-Argument verwendet, um eine Zeitzone zu erhalten. Diese Methode gibt eine Zeitzone zurück, die einem Kalender von DateFormat
zugeordnet ist.
Dann verwenden wir die Klasse SimpleDateFormat
, die beim Analysieren und Formatieren von Daten hilft. Es hilft uns, das Datum von einem Format in ein anderes umzuwandeln.
Wir instanziieren diese Klasse, indem wir unser erforderliches Datums-/Uhrzeitformat angeben.
Als nächstes setzen wir die Zeitzone mit der Methode setTimeZone()
und übergeben einen Parameter, der den von der Methode getTimeZone()
zurückgegebenen Wert enthält. Danach verwenden wir das Objekt dateFormat
, um das angegebene Datum zu formatieren.
Schließlich drucken wir das Datum, das jetzt im ISO 8601-Format vorliegt (siehe die oben angegebene Ausgabe).
Nun stellt sich die Frage, warum verwenden wir dieses spezielle Format? Haben wir einige Vorteile dafür? Schauen wir sie uns unten an.
Vorteile der Verwendung des ISO 8601-Formats
Im Folgenden sind einige Vorteile der Verwendung des ISO 8601-Formats gegenüber anderen gängigen Varianten aufgeführt:
- Es ist einfach, mit Software zu lesen/schreiben.
- Es ist einfach, mit String-Vergleichen zu vergleichen/sortieren.
- Zeichenfolgen, bei denen auf das Datum die Uhrzeit folgt, lassen sich leicht vergleichen/sortieren. Zum Beispiel
2022-09-30 10:15:00
. - Es ist unabhängig von der Landessprache leicht verständlich und kann nicht mit anderen gängigen Datumsvarianten verwechselt werden.
- Die Notation hat eine konstante Länge und ist prägnant. Außerdem bereitet eine vierstellige Jahreszahl um die Jahrhundertwende keine Probleme.
- Dieses Datumsformat
Jahr-Monat-Tag
ist beispielsweise in Korea, Ungarn, Schweden, Japan und anderen Ländern weit verbreitet.
Dieses Format ist identisch mit der chinesischen Datumsdarstellung, sodass fast 25 % bereits mit diesem System vertraut sind.
Wie wir sehen können, hat die Verwendung des ISO 8601-Formats mehrere Vorteile und ist außerdem einfach zu verwenden und zu verstehen. Daher ist es wichtig, dieses Datumsformat in Anwendungen zu lernen und zu verwenden.