Wie konvertiere ich Datetime in Unix-Zeitstempel in c?

Wie konvertiere ich Datetime in Unix-Zeitstempel in c?


Das Szenario ist:Ich bekomme mit libexif datetime im Format "YYYY-MM-DD HH:MM:SS". Um die Einsparungskosten zu minimieren, möchte ich die Datumszeit in einen Unix-Zeitstempel oder ähnliches konvertieren, der nur 64 Bit oder 32 Bit kostet. Gibt es einen expliziten Weg mit c?


Antworten:


Sie könnten eine Kombination aus strptime und mktime

ausprobieren
struct tm tm;
time_t epoch;
if ( strptime(timestamp, "%Y-%m-%d %H:%M:%S", &tm) != NULL )
epoch = mktime(&tm);
else
// badness