я иметь простую функцию, которая мне нужно возвращать удобочитаемое время дате с отметкой времени, но как-то возвращает тот же timestam в секундах:C++ штамп времени для чтения человеком функции даты и времени
вход 1356953890
std::string UT::timeStampToHReadble(long timestamp)
{
const time_t rawtime = (const time_t)timestamp;
struct tm * dt;
char timestr[30];
char buffer [30];
dt = localtime(&rawtime);
// use any strftime format spec here
strftime(timestr, sizeof(timestr), "%m%d%H%M%y", dt);
sprintf(buffer,"%s", timestr);
std::string stdBuffer(buffer);
return stdBuffer;
}
выход 1231133812
это, как я называю это:
long timestamp = 1356953890L ;
std::string hreadble = UT::timeStampToHReadble(timestamp);
std::cout << hreadble << std::endl;
и вывод: 1231133812 и я, что это должно быть в некотором роде этого формата: 31/1/2012 11:38:10 что здесь пропало?
UTDATE:
раствор STRFTIME (timestr, SizeOf (timestr), "% H:% M:% S% d /% м /% Y", дт);
, что отметка о времени? Это в миллисекундах или секундах? – Dariusz
Почему у вас есть временные переменные 'buffer' и' stdBuffer'? Строка, созданная 'strftime', должна быть достаточной, и вы должны иметь возможность просто выполнить return timestr;' или худший случай 'return std :: string (timestr);'. –
@ Джойхим Пилеборг задавал себе одно и то же. Возможно, он злоупотреблял загрузкой оператора струнного потока раньше ;-) – Najzero