Я новичок в c и пробовал на strptime
функции, которая преобразует строковое время в структуру tm
. После преобразования я не получаю время. все в порядке, но год отображается неправильно (дефолт 1900 года).strptime не работает с спецификатором формата часового пояса
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <ctype.h>
int main()
{
struct tm tm;
char *pszTemp = "Mon Apr 25 09:53:00 IST 2016";
char szTempBuffer[256];
memset(&tm, 0, sizeof(struct tm));
memset(szTempBuffer, 0, sizeof(szTempBuffer));
strptime(pszTemp, "%a %b %d %H:%M:%S %Z %Y", &tm);
strftime(szTempBuffer, sizeof(szTempBuffer), "%Y-%m-%d %H:%M:%S", &tm);
printf("Last Boot Time after parsed = %s\n", szTempBuffer);
return 0;
}
Выход: 1900-04-25 09:53:00
Вы проверили, что ['strptime'] (http://man7.org/linux/man-pages/man3/strptime.3.html) возвращается? Чтобы он не возвращал указатель «NULL»? –
Вы пытались скомпилировать с опцией '-Wall'? – LPs
@ LPs: это не сработало. –