Datumszeichenfolgen mit C 11 std::chrono analysieren
Beim Umgang mit historischen Datumszeichenfolgen ist es oft notwendig, sie in C-Datumszeichenfolgen zu analysieren Darstellungen für verschiedene Berechnungen. Der std::chrono-Namespace von C 11 bietet leistungsstarke Tools für die Zeitverwaltung.
Parsen einer Datumszeichenfolge
So analysieren Sie eine Datumszeichenfolge im Format „Do, 9. Jan. 12: 35:34 2014“ können wir std::stringstream und std::get_time nutzen Funktionen:
std::stringstream ss("Jan 9 2014 12:35:34"); std::tm tm = {}; ss >> std::get_time(&tm, "%b %d %Y %H:%M:%S");
Dies analysiert den String in eine std::tm-Struktur, die die einzelnen Zeitkomponenten enthält.
Konvertierung in einen std::chrono::time_point
Um einen std::chrono::time_point zu erhalten, der das analysierte Datum darstellt, verwenden wir std::chrono::system_clock::from_time_t:
auto tp = std::chrono::system_clock::from_time_t(std::mktime(&tm));
Berechnung der verstrichenen Zeit
Mit std::chrono::time_point können wir die verstrichene Zeit einfach berechnen Zeit ab dem angegebenen historischen Datum:
auto now = std::chrono::system_clock::now(); auto duration = now - tp;
Zugriffszeit Komponenten
std::chrono::duration bietet Zugriff auf einzelne Zeitkomponenten:
C 11 Support
GCC vor Version 5 implementiert std::get_time nicht. Es gibt jedoch auch eine Alternative mit strptime:
std::tm tm = {}; strptime("Thu Jan 9 2014 12:35:34", "%a %b %d %Y %H:%M:%S", &tm);
Das obige ist der detaillierte Inhalt vonWie kann ich Datumszeichenfolgen analysieren und Zeitberechnungen mit std::chrono von C 11 durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!