Heim >Backend-Entwicklung >C++ >Wie analysiert man Datumszeichenfolgen in zeitliche C-11-Werte?

Wie analysiert man Datumszeichenfolgen in zeitliche C-11-Werte?

Linda Hamilton
Linda HamiltonOriginal
2024-11-29 17:12:15207Durchsuche

How to Parse Date Strings into C  11 Temporal Values?

Datumszeichenfolgen in C 11-Zeitwerte analysieren

Datumszeichenfolgenanalyse analysieren

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.

C 11 std::chrono-Ansatz

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.

Alternative Option

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));

Dauerberechnung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn