2

我正在 Linux 上用 C 语言编写一个简单的 Web 服务器。

我必须添加将传输到客户端(浏览器)的文件的最后修改时间,

我分析了一些网站,发现它们都以格式显示时间:

Fri, 12 Nov 2010 16:02:54 GMT,

我的问题是,我可以简单地将 time_t 值转换为以前格式的字符串吗?有这样做的功能吗?还是格式根本不重要?

4

2 回答 2

5

strftime() 是您需要的功能。

关于 time_t 的维基百科文章给出了一个很好的例子 http://en.wikipedia.org/wiki/Time_t

于 2010-11-12T16:28:29.467 回答
2

这看起来像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 ()给出的格式

于 2010-11-12T16:40:07.690 回答