加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:23:12 所属栏目:百科 来源:网络整理
导读:我正在尝试将从__DATE__宏生成的字符串转换为time_t.我不需要一个完整的日期/时间解析器,只处理__DATE__宏的格式将是巨大的. 一个预处理器的方法会很漂亮,但是一个函数也可以工作.如果相关,我正在使用MSVC. 解决方法 编辑:修正后的功能应该如下所示: time_
我正在尝试将从__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);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读