ISO 8601 Zeitintervallanalyse in Java

ISO 8601 Definiert eine Syntax zur Darstellung eines Zeitintervalls.

Es gibt vier Möglichkeiten, ein Zeitintervall auszudrücken:

Anfang und Ende, z. B. "2007-03-01T13: 00: 00Z / 2008-05-11T15: 30: 00Z"Beginn und Dauer, z. B. "2007-03-01T13: 00: 00Z / P1Y2M10DT2H30M"Dauer und Ende, z. B. "P1Y2M10DT2H30M / 2008-05-11T15: 30: 00Z"Nur Dauer, z. B. "P1Y2M10DT2H30M", mit zusätzlichen Kontextinformationen

Wenn Elemente im Endwert fehlen, wird davon ausgegangen, dass sie mit dem Startwert einschließlich der Zeitzone identisch sind. Dieses Merkmal des Standards ermöglicht eine übersichtliche Darstellung von Zeitintervallen. Beispielsweise könnte das Datum einer zweistündigen Besprechung einschließlich der Start- und Endzeiten einfach als "2007-12-14T13: 30/15: 30" angezeigt werden, wobei "/ 15: 30" "/ 2007-12-" impliziert. 14T15: 30 "(das gleiche Datum wie der Beginn) oder das Anfangs- und Enddatum eines monatlichen Abrechnungszeitraums wie" 2008-02-15 / 03-14 ", wobei" / 03-14 "" / 2008-03 "impliziert -14 "(im selben Jahr wie der Start).

Außerdem werden Wiederholungsintervalle gebildet, indem "R [n] /" am Anfang eines Intervallausdrucks hinzugefügt wird, wobei R als der Buchstabe selbst verwendet wird und [n] durch die Anzahl der Wiederholungen ersetzt wird. Wenn Sie den Wert für [n] weglassen, bedeutet dies eine unbegrenzte Anzahl von Wiederholungen. Verwenden Sie "R5 / 2008-03-01T13: 00: 00Z / P1Y2M10DT2H30M", um das Intervall von "P1Y2M10DT2H30M" fünfmal zu wiederholen, beginnend mit "2008-03-01T13: 00: 00Z".

Ich suche einen guten Java-Parser (wenn möglich kompatibel mit der Joda-Time-Bibliothek), um diese Syntax zu analysieren. Gibt es Hinweise auf eine gute Bibliothek?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage