Parse ISO 8601-Dauer

8

In ISO 8601 wird die Dauer im Format P[n]Y[n]M[n]DT[n]H[n]M[n]S angegeben.

Beispiele:

20 Sekunden:

%Vor%

Ein Jahr, zwei Monate, drei Tage, vier Stunden, fünf Minuten, sechs Sekunden:

%Vor%

Frage:

Eine Zeichenfolge, die eine Dauer im ISO 8601-Format enthält. Ich möchte die Gesamtanzahl von Sekunden dieser Dauer erhalten. Was ist der empfohlene Weg in Standard C ++ 11, um dies zu erreichen?

Anmerkungen:

ZB ptime from_iso_string (std :: string) in Boost DateTime, die hier nicht passt. Gibt es einen ähnlichen Weg, ohne eine Regex von Hand zu machen?

    
SebastianK 27.05.2014, 09:45
quelle

2 Antworten

3

Verwenden Sie die Standard-Regex-Bibliothek, die gewünschte Regex ist etwa wie folgt:

%Vor%

davon können Sie die Anzahl der Jahre, Monate etc. herausziehen und die Gesamtsekunden berechnen.

    
Paul Evans 27.05.2014 09:59
quelle
1

Beispielcode für die ISO 8601-Dauer nach Unix epoch time converter:

%Vor%     
sigidagi 30.12.2015 15:32
quelle

Tags und Links