ISO-8601-Zeitdauer-Umrechner

Wandelt ISO-8601-Zeitdauerangaben (z. B. PT1H30M) in Sekunden um und umgekehrt. Praktisch zum Entschlüsseln von Formaten, die von der YouTube-API, AWS-Timeout-Einstellungen und Podcast-RSS-Feeds verwendet werden.

Gängige ISO-8601-Zeitdauer-Beispiele

Eine ISO-8601-Zeitdauer beginnt mit "P", gefolgt von Jahren/Monaten/Tagen, danach "T", gefolgt von Stunden/Minuten/Sekunden. Nachfolgend finden Sie gängige Beispiele und die Sekunden, die sie darstellen.

Notation Sekunden insgesamt Anmerkung
PT30S 30 Ein typischer kurzer Timeout-Wert, wie 30 Sekunden
PT1H30M 5,400 1 Stunde 30 Minuten – eine gängige Art, die Laufzeit eines Films oder die Länge eines YouTube-Videos anzugeben
P1D 86,400 1 Tag (24 Stunden) – häufig für die Aufbewahrungsdauer von Logs oder die Ablaufzeit von Caches verwendet
P3Y6M4DT12H30M5S 110,842,205 Ein kombiniertes Beispiel, das 3 Jahren, 6 Monaten, 4 Tagen, 12 Stunden, 30 Minuten und 5 Sekunden entspricht (Jahre/Monate verwenden die Näherung von 365,25 Tagen)

Tipps

  • Zeitdauern mit Jahren oder Monaten haben in Wirklichkeit keine feste Anzahl von Sekunden, daher verwendet dieses Tool eine feste Näherung: 1 Jahr = 365,25 Tage und 1 Monat = 30,44 Tage.
  • Wählen Sie beim Erzeugen eines Zeitdauer-Strings aus Sekunden den Modus "nur Tage/Stunden/Minuten/Sekunden", um die Jahres-/Monatsnäherung ganz zu vermeiden und ein exaktes, kalenderunabhängiges Ergebnis zu erhalten.
  • Die YouTube Data API liefert die Videolänge im Feld contentDetails.duration im ISO-8601-Format zurück, sodass Sie sie direkt hier einfügen können, um die Gesamtsekunden zu erhalten.
  • Cloud-Dienste wie AWS Lambda und API Gateway verwenden manchmal die ISO-8601-Zeitdauernotation für Timeout-Einstellungen, weshalb dieses Tool zur Überprüfung solcher Werte nützlich ist.
  • Podcast-RSS-Feeds verwenden gelegentlich neben dem gängigeren hh:mm:ss-Format auch das ISO-8601-Zeitdauerformat im Tag itunes:duration.

Häufig gestellte Fragen

PT1H30M ist die ISO-8601-Zeitdauernotation für "1 Stunde 30 Minuten". Das "P" markiert den Beginn einer Zeitspanne, das "T" den Beginn des Uhrzeitteils (Stunden/Minuten/Sekunden) – das ist wichtig, denn ohne "T" bedeutet "1M" "1 Monat", während es nach dem "T" "1 Minute" bedeutet.

Bekannte Beispiele sind das Videolängenfeld der YouTube Data API (contentDetails.duration), Timeout- und Ablaufeinstellungen bei Cloud-Diensten wie AWS und Google Cloud sowie Podcast-RSS-Feeds (itunes:duration). Viele Programmiersprachen unterstützen ebenfalls das Parsen und Erzeugen dieses Formats, etwa die Klassen Duration/Period in Java oder die isodate-Bibliothek in Python.

Ein Jahr hat je nach Schaltjahr 365 oder 366 Tage, und ein Monat reicht von 28 bis 31 Tagen, sodass es für keine der beiden Einheiten eine feste Sekundenzahl gibt. Dieses Tool verwendet 365,25 Tage als praktischen Durchschnittswert für ein Jahr (und ein Zwölftel davon, etwa 30,44 Tage, für einen Monat). Wenn Sie ein exaktes Ergebnis benötigen, verwenden Sie den Modus "exakt", der Zeitdauern nur mit Tagen, Stunden, Minuten und Sekunden ausdrückt.

Ja, eine Notation wie "P2W" (2 Wochen) wird unterstützt. Beachten Sie, dass die Wochennotation gemäß der ISO-8601-Spezifikation eine eigenständige Kurzform ist, die nicht mit Jahres-/Monats-/Tageskomponenten oder dem Uhrzeitteil kombiniert werden kann.

Beginnt die Eingabe nicht mit "P", stehen die Einheiten nicht in der richtigen Reihenfolge (J→M→T und nach dem "T" H→M→S), oder werden alle Einheiten weggelassen (eine leere Zeitdauer), stellt das Tool fest, dass der String nicht umgewandelt werden kann, und zeigt statt eines Ergebnisses eine Fehlermeldung an.
ツールくん

Übrigens – Warum gibt es in der Computerwelt ein eigenes Format für "Zeitdauern"?

ISO 8601 ist vor allem als internationaler Standard zur Darstellung von Datum und Uhrzeit bekannt, doch derselbe Standard definiert auch eine eigene Notation für "Zeitdauern" – die Zeitspanne zwischen zwei Zeitpunkten statt eines einzelnen Zeitpunkts. Ein Datum-Zeit-Wert beantwortet die Frage "wann", eine Zeitdauer die Frage "wie lange", und obwohl beide auf den ersten Blick ähnlich wirken, stellen sie grundlegend unterschiedliche Arten von Informationen dar. Genau um diese Unterscheidung klar zu halten, gibt es die eigene, mit "P" beginnende Notation.

Ein Grund, warum sich die Zeitdauernotation in der Praxis so bewährt hat, ist, dass sie Fehler durch missverstandene Einheiten beim Datenaustausch zwischen Systemen verhindert. Würde eine API-Antwort einfach nur die Zahl "30" zurückgeben, müsste der Aufrufer erst in der Dokumentation nachsehen, ob damit Sekunden oder Minuten gemeint sind. Bei "PT30S" reisen Wert und Einheit gemeinsam in einem einzigen String, sodass ein korrekt implementierter Parser sie nicht falsch interpretieren kann.

Genau deshalb liefert die YouTube Data API die Videolänge im ISO-8601-Format zurück: Ein String wie "PT4M13S" bedeutet eindeutig ein Video von 4 Minuten 13 Sekunden. Cloud-Plattformen wie AWS und Google Cloud verwenden gelegentlich dasselbe Format für Timeout- und Ablaufeinstellungen. Wenn Sie diese Notation also in einer YAML-Konfigurationsdatei oder einer JSON-Antwort entdecken, kann es helfen, sie durch dieses Tool laufen zu lassen, um sich die entsprechende Sekundenzahl besser vorstellen zu können.

Gleichzeitig hat der Standard eine interessante Eigenheit: Zeitdauern, die Jahre oder Monate enthalten, besitzen keine feste, absolute Länge. Dasselbe "P1Y" kann je nachdem, ob ein Schaltjahr hineinfällt, 365 oder 366 tatsächliche Tage bedeuten. Letztlich ist genau das der Grund, warum dieses Tool bei Umrechnungen mit Jahren oder Monaten auf eine Näherung zurückgreifen muss.