2

RFC822タイムスタンプをunixtimeに変換する関数があります

#include <stdio.h>
#include <time.h>

int main() {

struct tm tm;
time_t unixtime;

strptime("Sun, 20 Feb 2011 10:28:02 +0800","%a, %e %h %Y %H:%M:%S %z",&tm);

unixtime = mktime(&tm);
printf("%d\n",unixtime);

return 0;
}

問題:タイムゾーン部分(%z)が機能していないようです。他の日付値を変更せずに、入力タイムゾーンを他の値+ 0100、+ 0200 ectに変更しようとしましたが、常に同じunixtimeスタンプ(つまり、GMTに対応するunixtimestamp)が表示されます。

ここで問題になる可能性はありますか?

4

1 に答える 1

1

structtmにはタイムゾーンフィールドが含まれていません。%zは、strftimeと同じフラグをサポートするためだけにサポートされています。タイムゾーンオフセットを手動で抽出して調整する必要があります。

于 2011-02-20T15:24:59.513 に答える