将字符串从 __DATE__ 转换为 time_t

2023-11-26

我正在尝试转换从生成的字符串__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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将字符串从 __DATE__ 转换为 time_t 的相关文章