我正在尝试将从__DATE__宏生成的字符串转换为time_t.我不需要一个完整的日期/时间解析器,只处理__DATE__宏的格式将是巨大的.
解决方法
编辑:修正后的功能应该如下所示:
time_t cvt_TIME(char const *time) { char s_month[5]; int month,day,year; struct tm t = {0}; static const char month_names[] = "JanFebMarAprMayJunJulAugSepOctNovDec"; sscanf(time,"%s %d %d",s_month,&day,&year); month = (strstr(month_names,s_month)-month_names)/3; t.tm_mon = month; t.tm_mday = day; t.tm_year = year - 1900; t.tm_isdst = -1; return mktime(&t); }