2

Linux上のCで簡単なWebサーバーを作成しています。

クライアント(ブラウザ)に転送されるファイルの最終変更時刻を追加する必要があります。

いくつかのWebサイトを分析したところ、すべての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

これはRFC822で定義されている形式のように見えます。をに変換し、次time_tのようなstrftime文字列struct tmを使用して形式を設定できます。

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 に答える