время — C ++ strptime дает неверные результаты

Я анализирую файл, содержащий строки в формате 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

Откуда проблема? Я также отметил, что, похоже, выдает одинаковый вывод независимо от формата.

1

Решение

В соответствии с справочная страница, спецификаторы преобразования используют % характер, а не & ты использовал

Таким образом, следующий код должен быть использован:

strptime(str.c_str(), "%d/%m/%Y %H:%M:%S", &tm);
1

Другие решения


По вопросам рекламы [email protected]