Est-il un standard de la date/heure de classe en C++?
Ne C++ stl ont une norme de temps de classe? Ou dois-je les convertir à c-string avant de les écrire dans un flux. Exemple, je veux à la sortie de la date/heure actuelle à une chaîne de stream:
time_t (tm); ostringstream sout; sout << tm << fin;
Dans ce cas, je reçois la date/heure actuelle est écrit comme un nombre sans mise en forme. Je peux utiliser
c - runtime fonction strftime
de format tm premier abord, mais qui semble comme il ne devrait pas être nécessaire si le tsl a un temps de classe qui peuvent être instanciés à partir de time_t valeur
- Il y a maintenant une proposition pour une pleine et C++ moderne date/heure/fuseau horaire devant le comité: open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0355r1.html . Cette proposition est fondée sur ce dépôt github: github.com/HowardHinnant/date qui a la pleine mise en œuvre, documentation complète, et une communauté active.
- La bibliothèque mentionnées dans le commentaire au-dessus de celui-ci est maintenant partie du projet de loi C++20 cahier des charges.
Vous devez vous connecter pour publier un commentaire.
Pas partie de la STL, mais bien connu bibliothèque boost.
Je voudrais aller dans le sens de l'aide
boost::date
. Voici quelques exemples: http://www.boost.org/doc/libs/1_55_0/doc/html/date_time/date_time_io.html#date_time.io_tutorial.Si vous n'avez pas essayer de booster encore, je vous encourage à le faire, car cela vous permet d'économiser de beaucoup de mauvaises questions, que les masques de la plupart des OS dépendante des choses comme le filetage par exemple. Beaucoup de choses dans
boost
sont l'en-tête seulement (modèle de bibliothèques). Cependant datetime nécessite une lib ou dll.Coupant les cheveux en quatre: Le TSL d'être la Norme Modèle Bibliothèque traite conteneur générique et algorithmes etc. et il est peu probable à intégrer des classes pour manipuler des dates et calcul, même dans le futur...
La Norme C++ de la Bibliothèque elle-même comprend la STL et une précédente version de la bibliothèque C standard. La seconde offre de certains de la date et de la durée des fonctions via
#include <ctime>
qui a déjà été mentionné ci-dessus.Si l'enchaînement (ou tout simplement utiliser) ces fonctions est suffisant (et plus rapide) que de tirer dans boost, aller avec ces. Il n'y a rien de mal avec eux.
Il y a get_time et put_time dans <iomanip> header (je suppose que ce est venu avec C++11), qui est l'efficacité de la chaîne de mise en forme ou de l'analyse des emplois.
Il y a aussi un ctime(&time_t), une méthode de sorties de chaîne de caractères (char*).
OK. Ici est le plus proche que j'ai trouvé sur directement le temps de rédaction d'un ruisseau:
Un guide très utile est l'Apache Standard C++ Library Guide de Référence
http://stdcxx.apache.org/doc/stdlibref/time-put.html#sec13
C++ a maintenant le chrono des bibliothèques pour la date et l'heure.
Ceci est documenté sur http://en.cppreference.com/w/cpp/chrono et http://www.cplusplus.com/reference/chrono/