我正在 Linux 上用 C 语言编写一个简单的 Web 服务器。
我必须添加将传输到客户端(浏览器)的文件的最后修改时间,
我分析了一些网站,发现它们都以格式显示时间:
Fri, 12 Nov 2010 16:02:54 GMT
,
我的问题是,我可以简单地将 time_t 值转换为以前格式的字符串吗?有这样做的功能吗?还是格式根本不重要?
strftime() 是您需要的功能。
关于 time_t 的维基百科文章给出了一个很好的例子 http://en.wikipedia.org/wiki/Time_t
这看起来像RFC 822中定义的格式,您可以将 a 转换time_t
为 a struct tm
,并将其格式化为使用strftime字符串,如
struct tm time_tm;
char http_time[64];
time_t t = time(NULL);
gmtime_r(&t,&time_tm);
strftime(http_time,sizeof http_time,"%a, %d %b %Y %H:%M:%S +0000",&time_tm);
笔记; strftime 使用当前语言环境转换名称,您可能需要更改当前语言环境以获取英文名称。
HTTP 规范也允许asctime ()给出的格式