c – 将字符串从__DATE__转换为time_t

前端之家收集整理的这篇文章主要介绍了c – 将字符串从__DATE__转换为time_t前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将从__DATE__宏生成的字符串转换为time_t.我不需要一个完整的日期/时间解析器,只处理__DATE__宏的格式将是巨大的.

一个预处理器的方法会很漂亮,但是一个函数也可以工作.如果相关,我正在使用MSVC.

解决方法

编辑:修正后的功能应该如下所示:
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);
}

猜你在找的C&C++相关文章