Gegeben ist eine historische Datumszeichenfolge im Format „Do, 9. Januar, 12:35 Uhr“. :34 2014“, das Ziel besteht darin, es in ein geeignetes C zu analysieren Darstellung.
Für den C 11 std::chrono-Namespace kann eine Kombination aus der Funktion std::strptime und std::chrono::system_clock sein genutzt.
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));
Beachten Sie, dass std::get_time in GCC vor der Version nicht implementiert ist 5.
Ein alternativer Ansatz ist die Verwendung der strptime-Funktion:
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));
Sobald die Datumszeichenfolge analysiert wurde Als zeitlicher Wert kann die Differenz zwischen der aktuellen Zeit und der analysierten Zeit mit std::chrono::duration berechnet werden. Diese Dauer bietet Zugriff auf die Anzahl der verstrichenen Sekunden, Minuten, Stunden und Tage.
Das obige ist der detaillierte Inhalt vonWie analysiert man Datumszeichenfolgen in zeitliche C-11-Werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!