Comment convertir std::chrono::time_point à chaîne
Comment convertir std::chrono::time_point
à la chaîne?
Par exemple: "201601161125"
.
Avez-vous essayé de l'insérer dans
Non, je n'ai pas. Je vais le faire. Si votre astuce fonctionne, je vais vous laisser savoir.
Voir: howardhinnant.github.io/date_v2.html la Section "à propos d'une date-type de temps?"
std::stringstream
puis de le convertir à l'aide de la chaîne stringstream de la fonction de membre de .str()
?Non, je n'ai pas. Je vais le faire. Si votre astuce fonctionne, je vais vous laisser savoir.
Voir: howardhinnant.github.io/date_v2.html la Section "à propos d'une date-type de temps?"
OriginalL'auteur Seihyung Oh | 2016-01-18
Vous devez vous connecter pour publier un commentaire.
Le moyen le plus souple pour le faire est de le convertir en
struct tm
et ensuite utiliserstrftime
(c'est commesprintf
pour l'instant). Quelque chose comme:Rechercher de la documentation pour
strftime
ici.Si vous avez
localtime_s
oulocaltime_r
disponible, vous devez utiliser de préférence àlocaltime
.Il existe de nombreuses autres façons de le faire, mais, bien que généralement plus faciles à utiliser, ces résultat dans quelques modes de représentation de chaîne. Vous pourriez tout simplement "cacher" tout ce qui précède dans une fonction pour la facilité d'utilisation.
OriginalL'auteur srdjan.veljkovic
Howard Hinnant est gratuit, open source, d'en-tête uniquement, portable date/heure de la bibliothèque est un moyen moderne de faire ce qui n'a pas de trafic à travers la vieille API C, et ne nécessite pas que vous jetez tous vos sous-deuxième de l'information. Cette bibliothèque est également proposé pour la normalisation.
Il y a beaucoup de flexibilité dans la mise en forme. La façon la plus simple est juste de flux:
Ce juste sortie pour moi:
La
using namespace date;
est nécessaire afin de trouver le streaming de l'opérateur pour lasystem_clock::time_point
(il n'est pas légal pour ma lib pour l'insérer dansnamespace std::chrono
). Aucune information n'est perdue dans ce format: toute la précision de votresystem_clock::time_point
sera de sortie (microseconds
où j'ai couru ce sur macOS).La suite complète de
strftime
-comme le formatage de drapeaux est disponible pour les autres formats, avec de légères extensions pour gérer des choses comme les fractions de secondes. Voici un autre exemple que les sorties avec précision à la milliseconde:qui vient de sortie pour moi:
OriginalL'auteur Howard Hinnant