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

windows – 如何从C代码(Win32)生成RFC1123 Date字符串

发布时间:2020-12-14 02:50:32 所属栏目:Windows 来源:网络整理
导读:RFC1123定义了许多内容,其中包括要在互联网协议中使用的日期格式. HTTP( RFC2616)指定必须按照RFC1123生成日期格式. 它看起来像这样: Date: Wed,28 Apr 2010 02:31:05 GMT 如何在Windows上运行C代码生成RFC1123时间字符串? 我没有使用C#和DateTime.ToStrin
RFC1123定义了许多内容,其中包括要在互联网协议中使用的日期格式. HTTP( RFC2616)指定必须按照RFC1123生成日期格式.

它看起来像这样:

Date: Wed,28 Apr 2010 02:31:05 GMT

如何在Windows上运行C代码生成RFC1123时间字符串?
我没有使用C#和DateTime.ToString().

我知道我可以自己编写代码,发出时区和日缩写,但我希望这已经存在于Windows API中.

谢谢.

解决方法

这是我用过的:

static const char *DAY_NAMES[] =
  { "Sun","Mon","Tue","Wed","Thu","Fri","Sat" };
static const char *MONTH_NAMES[] =
  { "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" };

char *Rfc1123_DateTimeNow()
{
    const int RFC1123_TIME_LEN = 29;
    time_t t;
    struct tm tm;
    char * buf = malloc(RFC1123_TIME_LEN+1);

    time(&t);
    gmtime_s(&tm,&t);

    strftime(buf,RFC1123_TIME_LEN+1,"---,%d --- %Y %H:%M:%S GMT",&tm);
    memcpy(buf,DAY_NAMES[tm.tm_wday],3);
    memcpy(buf+8,MONTH_NAMES[tm.tm_mon],3);

    return buf;
}

(编辑:李大同)

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

    推荐文章
      热点阅读