Maison >développement back-end >C++ >Comment analyser les chaînes de date en valeurs temporelles C 11 ?

Comment analyser les chaînes de date en valeurs temporelles C 11 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-29 17:12:15179parcourir

How to Parse Date Strings into C  11 Temporal Values?

Analyse des chaînes de date en valeurs temporelles C 11

Analyse des chaînes de date

Étant donné une chaîne de date historique au format "Jeudi 9 janvier 12h35 :34 2014", le but est de l'analyser en un C approprié représentation.

Approche C 11 std::chrono

Pour l'espace de noms C 11 std::chrono, une combinaison de la fonction std::strptime et std::chrono::system_clock peut être utilisé.

std::tm tm = {};
std::stringstream ss("Jan 9 2014 12:35:34");
ss >> std::get_time(&tm, "%b %d %Y %H:%M:%S");
auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));

Notez que std::get_time n'est pas implémenté dans GCC avant la version 5.

Option alternative

Une approche alternative consiste à utiliser la fonction strptime :

std::tm tm = {};
strptime("Thu Jan 9 2014 12:35:34", "%a %b %d %Y %H:%M:%S", &tm);
auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));

Calcul de la durée

Une fois la chaîne de date analysée une valeur temporelle, la différence entre l'heure actuelle et l'heure analysée peut être calculée en utilisant std::chrono::duration. Cette durée donne accès au nombre de secondes, minutes, heures et jours écoulés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn