2009-06-11 2 views
0

Kennt jemand eine Bibliothek, die ähnlich wie .NET Parse/TryParse für Daten und Zeiten bietet, die unter Linux von C++ verwendet werden können?Etwas wie TryParse für Daten in C++ (Nicht-Windows)?

Ich habe den Boost Datum/Zeit-Code angeschaut, aber ich bin mir nicht sicher, ob ich es ohne Angabe des bestimmten Eingabeformats vor versuchen kann zu parsen. Im Grunde könnte ich Daten in einer beliebigen Anzahl von Formaten haben, und will es einfach auf eine Funktion werfen und sehen, ob ich etwas nützliches daraus erhalte, bevor ich mich mit Randfällen beschäftigen muss und was nicht.

Vielen Dank für Anregungen.

Antwort

1

In C++ verwenden wir die Stream-Operatoren für diese Art der Sache:
Siehe http://www.boost.org/doc/libs/1_39_0/doc/html/date_time/date_time_io.html

std::stringstream ss; 
ss << "2004-Jan-01"; 

date d; 
ss >> d; // Should throw on bad format. 
+0

Kann der Basistag auch mal machen? Ich benutzte local_date_time, aber es ist begrenzter auf die Stream-Operatoren (es funktionierte, wenn ich ein "gut formatiertes" 2005-Jul-04 22:12:38 verwenden würde, aber nicht, wenn ich etwas Abwechslungsreiches versuchen würde, wie 06/26/2007 11:17:04, von denen ich beide erwarten würde zu arbeiten.) – Joe

1

glib hat Datumsanalysecode. Es ist eine C-Bibliothek, aber unter Linux weit verbreitet. Sie könnten auch die C++ bindings, glibmm verwenden.

Hier ist die API für die Datumsanalyse für glib und glibmm.

+0

Interessant. Ich werde es mir ansehen. – Joe

+0

Das gleiche wie unten, es scheint, der glib-Code ist nur für Daten, aber ich brauche Daten und Zeiten. – Joe