ISO 8601 – Zeitangaben international sicher kommunizieren
Zeitangaben sind wichtig, wenn man Absprachen treffen und zusammenfinden möchte. In Zeiten der digitalen Globalisierung wird es aber immer schwieriger, Zeitangaben allgemein verständlich zu gestalten. Verschiedene Zeitzonen weltweit und unterschiedliche kulturelle Gewohnheiten der Zeitformatierung verkomplizieren die Angabe präziser und zuverlässiger Daten und Uhrzeiten über Ländergrenzen hinweg. ISO 8601 löst genau dieses Problem. Durch die Einigung auf diesen internationalen Standard können alle Akteure weltweit unmissverständliche Zeitabsprachen treffen.
Der internationale Standard ISO 8601 gibt Empfehlungen für numerische Datumsformate und Zeitangaben.
Die vorhandenen Datenformate können Sie mithilfe von verschiedenen Tools oder per Skript in das gewünschte ISO-Date-Format konvertieren. In diesem Artikel erfahren Sie alles Wissenswerte über den genormten Standard für Zeitangaben.
- Inklusive Wildcard-SSL-Zertifikat
- Inklusive Domain Lock
- Inklusive 2 GB E-Mail-Postfach
Grundsätze der ISO-8601-Norm
Die ISO 8601 Norm definiert ein international anerkanntes Format zur Darstellung von Daten. Dieses wird durch die Schreibweise Stunden-Minuten-Sekunden ausgedrückt. Für Zeitangaben in größeren Dimensionen gilt es in der Form Jahr-Monat-Tag. Das Grundformat dieser Darstellung erlaubt es, die Ziffern unmittelbar hintereinander zu schreiben. Sie können aber zwecks Übersichtlichkeit auch durch Trennzeichen separiert werden. Im Grundformat von ISO 8601 hat das Datum „07. September 2019“ entsprechend folgende Schreibweise: „20190907“, oder in der Formatierung mit Trennzeichen ausgedrückt: „2019-09-07“. Uhrzeiten sind in Stunden, Minuten und Sekunden unterteilt. Die Darstellung in ISO 8601 ist also 12:07:22. Mit dieser Darstellung von ISO-Datenformaten (als ISO date formats bezeichnet) entfallen – zumindest in elektronischen Angaben – die länderspezifischen Schreibweisen. Angaben werden auf diese Weise vereinheitlicht, wodurch es zu weniger Irritationen kommt.
Die ISO-8601-Norm ist auch unter der Bezeichnung EN 28601 bekannt (Bezeichnung für EU-Normen). Sie wird zudem nicht nur zur Angabe von Zeitpunkten, sondern auch zur Angabe von Zeitspannen verwendet. In solchen Fällen ist das Startdatum oder die Startzeit mit dem Buchstaben „P” von der nachfolgenden Zeitspanne getrennt. Eine Zeitspanne, die am 6. September 2019 um 20:00 Uhr beginnt und einen Monat, 5 Tage und 3 Stunden andauert, sieht entsprechend der ISO-Vereinheitlichung folgendermaßen aus: 2019-09-06T20P1M5T3H.
Alle Angaben wie Zeiten, Daten oder Zeitspannen werden gemäß der ISO-Norm in einer bestimmten Reihenfolge dargestellt: Sie beginnen mit der größten Einheit und dann folgt immer die nächstkleinere. Diese Schreibweise ist auch als „fallende Schreibung” bekannt. Sie entspricht der natürlichen mathematischen Wertigkeit von Zahlen. Größere Einheiten sind also immer vor kleineren Einheiten geschrieben. Sie ist vorteilhaft, weil hierdurch die lexikografische und die chronologische Sortierung von Daten und Zeitangaben zum gleichen Ergebnis führen.
Tabellarische Darstellung der ISO-8601-Daten (ISO date)
Darstellung nach ISO 8601 | Wertebereiche |
---|---|
Jahr (J) | JJJJ, vierstellig, gekürzt zweistellig |
Monat (M) | MM, 01 bis 12 |
Woche (W) | WW, 01 bis 53 |
Tag (T) | T, Tag der Woche, 1 bis 7 |
Stunde (h) | hh, 00 bis 23, 24:00:00 als Endzeit |
Minute (m) | mm, 00 bis 59 |
Sekunde (s) | ss, 00 bis 59 |
Dezimaler Bruchteil (f) | Bruchteile von Sekunden, beliebige Genauigkeit |
In allen Formaten der Norm sind die Werte für Daten oder Zeiten in verschiedene Einheiten untergliedert, z. B. Jahr, Monat, Tag, Stunde usw., wobei jede einzelne Einheit mit einer festen Ziffernzahl dargestellt ist. Besonders im naturwissenschaftlichen Bereich, der Software-Entwicklung und bei internationalen Korrespondenzen wird die Norm genutzt, um das Fehlerrisiko bei Zeitangaben zu senken. Der international standardisierte ISO-8601-Zeitstempel (ISO 8601 timestamp), verringert dieses Risiko deutlich.
Nach den Datums- und Zeitangaben ist zusätzlich oft die Differenz zu der anerkannten Weltzeit angegeben, abgekürzt mit UTC. So berücksichtigt das Format eventuelle Zeitzonenunterschiede oder landesspezifische Sommerzeiten. Als Wert wird hier in der Regel der Buchstabe „Z” verwendet.
Tabellarische Darstellung der ISO-8601-Daten mit Zeitzonenangaben
Beispiel | Erklärung |
---|---|
2019-09-07T-15:50+00 | 15:50 am 07.09.2019 in der Zeitzone der Weltzeit |
2019-09-07T15:50+00Z | ebenfalls 15:50 am 07.09.2019 in der Zeitzone der Weltzeit mit Zusatz „Z” in der Schreibweise |
2019-09-07T15:50+01:00 | 15:50 am 07.09.2019 in der Zeitzone Berlin (MEZ) |
Wichtig zu beachten ist jedoch: Der Geltungsbereich der Jahreszahlen in diesem Format umfasst nur die Jahre von 1583 bis 9999. Das liegt daran, dass der gregorianische Kalender erst im Jahr 1583 eingeführt wurde. Es besteht trotzdem die Möglichkeit, ISO 8601 auch für Zeit- oder Datenangaben vor dem Jahr 1583 anzuwenden. Hierfür ist jedoch eine genaue Absprache zwischen den „Datenaustauschpartnern” notwendig, um Unstimmigkeiten zu vermeiden.
Vorteile des ISO-8601-Standards im Vergleich zu anderen gebräuchlichen Varianten
ISO 8601 spezifiziert nur numerische Notationen und deckt keine Daten und Zeiten ab, in denen Wörter in der Darstellung verwendet werden. Sie ist nicht als Ersatz für sprachabhängige Formulierungen wie „4. Februar 1995" gedacht. ISO 8601 sollte jedoch verwendet werden, um Bezeichnungen wie „2/4/95“ (US Schreibweise) und „9:30 Uhr“ zu ersetzen.
Die Vorteile der ISO-8601-Norm lassen sich folgendermaßen zusammenfassen:
- leicht les- und schreibbar durch Software
- leicht vergleichbar und sortierbar durch einen einfachen Zeichenkettenvergleich
- unabhängig von der Landessprache verständlich
- kann nicht mit anderen gängigen Datumsbezeichnungen verwechselt werden
- Übereinstimmung mit dem üblichen 24h-Zeit-Notensystem, bei dem die größeren Einheiten (Stunden) auch vor die kleineren (Minuten und Sekunden) gesetzt werden
- Zeichenketten, die ein Datum gefolgt von einer Uhrzeit enthalten, sind ebenfalls leicht vergleichbar und sortierbar (z.B. „2019-09-07 20:15:00“)
- Notation ist kurz und hat eine konstante Länge, was sowohl die Tastatureingabe als auch das Tabellenlayout erleichtert
- identisch mit der chinesischen Datumsnotation, sodass die größte Kulturgruppe (>25 %) auf diesem Planeten bereits damit vertraut ist
- Datumsangaben mit der Reihenfolge „Jahr, Monat, Tag" sind außerdem bereits weit verbreitet, z.B. in Japan, Korea, Ungarn, Schweden, Finnland, Dänemark und einigen anderen Ländern
- eine vierstellige Jahresdarstellung führt nicht zu Problemen bei Jahrhundertwechseln
Daten konvertieren
Grundsätzlich kann das Format natürlich in zwei verschiedene Richtungen konvertiert werden. Zum einen kann ein Datum bzw. eine Zeitangabe aus der jeweiligen Landesform in die ISO-Norm konvertiert werden, zum anderen aber auch aus dem ISO-Format in die jeweilige Landessprache.
Beim Konvertieren aus dem ISO-Datum (ISO date) in eine „einfache” lesbare Form, sieht der ISO-8601-Timestamp normalerweise folgendermaßen aus:
String dateString = "2019-09-26T07:58:30.996+0200"
Dieser „String” ist nun in dem Datumsformat yyyy-MM-dd aufgebaut. Das Trennzeichen für die Zeit ist hierbei „T“ und das Format der Uhrzeit HH:mm:ss, plus dem UTC-Anhang .sssz. Das gesamte Format sieht also so aus: yyyy-MM-dd ‘T’ HH:mm:ss.SSSZ.
Die folgende Konvertierung soll das ISO-Datum nun in das allgemeine deutsche, bzw. uns geläufige Format überführen, also HH:mm, dd.MM.yyyy (Stunde, Minute – Tag, Monat, Jahr).
public String getOurDate() {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
try {
Date unformatedDate = format.parse(date);
String formatedDate = new SimpleDateFormat("HH:mm dd.MM.yyyy").format(unformatedDate);
return formatedDate;
} catch (ParseException e){
System.out.println("Error")
}
return date;
}
Zusätzlich zu den manuellen Konvertierungsmöglichkeiten gibt es im Internet auch einige Websites, die die Daten automatisch in das jeweils gewünschte Format konvertieren. Zum Beispiel DenCode Converter. Dort wird einfach das Datum im vorhandenen Format eingegeben und dann ausgewählt, in welche Ausgabeformatierung es konvertiert werden soll. Auch die Zeitzone ist wählbar.