C конвертировать char [] в метку времени; - PullRequest
1 голос
/ 22 апреля 2011

У меня есть дата даты [] = "2011-04-01"; Как конвертировать в метку времени в C или C ++?

Ответы [ 2 ]

4 голосов
/ 22 апреля 2011

Предупреждение: strptime является POSIX -функцией (может быть недоступно через time.h на платформе ОС «Windows»).

#include <time.h>

struct tm time;
strptime("2011-04-01", "%Y-%m-%d", &time);
time_t loctime = mktime(&time);  // timestamp in current timezone
time_t gmttime = timegm(&time);  // timestamp in GMT
3 голосов
/ 22 апреля 2011

Попробуйте это:

char date[] = "2011-04-01";
date[4] = date[7] = '\0';
struct tm tmdate = {0};
tmdate.tm_year = atoi(&date[0]) - 1900;
tmdate.tm_mon = atoi(&date[5]) - 1;
tmdate.tm_mday = atoi(&date[8]);
time_t t = mktime( &tmdate );
...