2009-06-11 5 views
0

Quelqu'un sait-il d'une bibliothèque qui offre quelque chose de similaire à Parse/TryParse .NET pour les dates et les heures qui peuvent être utilisées sur Linux à partir de C++?Quelque chose comme TryParse pour les dates/heures en C++ (non-Windows)?

J'ai regardé le code date/heure de Boost mais je ne suis pas sûr de pouvoir le faire sans spécifier le format d'entrée particulier avant essayant d'analyser. Fondamentalement, je pourrais avoir des dates dans un certain nombre de formats, et je veux simplement le lancer à une fonction et voir si j'obtiens quelque chose d'utile avant d'avoir à faire face à des cas de bord et autres joyeusetés.

Merci pour vos suggestions.

Répondre

1

En C++, nous utilisons les opérateurs de flux pour ce genre de chose:
Voir 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

Est-ce que le type de date de base peut aussi être utilisé? J'utilisais local_date_time mais il est plus limité sur les opérateurs de flux (cela fonctionnait quand j'utilisais un "bien formaté" 2005-Jul-04 22:12:38 mais pas quand j'essayais quelque chose de différent, comme 06/26/2007 11:17:04, les deux que je m'attendrais à travailler.) – Joe

1

glib a un code d'analyse de date. C'est une bibliothèque C mais largement disponible sur Linux. Vous pouvez également utiliser le C++ bindings, glibmm.

Voici l'API d'analyse de date pour glib et glibmm.

+0

Intéressant. Je vais vérifier cela. – Joe

+0

Comme ci-dessous, il semble que le code glib ne concerne que les dates, mais j'ai besoin de dates et d'heures. – Joe

Questions connexes