Я анализирую файл, содержащий строки в формате DD/MM/YYYY HH:MM:SS
, Я пытаюсь прочитать их и преобразовать в метки времени Unix, используя следующий код:
tm tm;
cout << datestr << endl;
strptime(str.c_str(), "&d/&m/&Y %H:&M:&S", &tm);
cout << tm.tm_year << " " << tm.tm_mon << " " << tm.tm_mday << " " << tm.tm_hour << " " << tm.tm_min << " " << tm.tm_sec << " " << endl;
timestamp = mktime(&tm);
Вот что происходит, когда я запускаю программу:
24/01/2014 00:04:42
4 6 31 4 1 8
Откуда проблема? Я также отметил, что, похоже, выдает одинаковый вывод независимо от формата.
В соответствии с справочная страница, спецификаторы преобразования используют %
характер, а не &
ты использовал
Таким образом, следующий код должен быть использован:
strptime(str.c_str(), "%d/%m/%Y %H:%M:%S", &tm);