1

Dateメールのヘッダーを作成しようとしています。

形式は次のとおりです。

DayOfWeek, Day ShortMonth Year Hours:Minutes:Seconds Offset (TimeZone)

したがって、例は次のようになります。

Fri, 19 Mar 2010 11:44:09 -0700 (PDT)

PDT私が取得しようとしているのは、TimeZone の部分 (例では) です。これはシステムによって異なることは承知していますが、それらすべてのソリューションが必要です。

ありがとう!

4

1 に答える 1

3

%Zでを探していstrftime()ます。

例えば:

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

int main()
{
    char buf[16];
    time_t t = time(0);

    strftime(buf, sizeof(buf), "%Z", localtime(&t));
    printf("%s\n", buf);

    return 0;
}

そして、それは C89、AFAIR です (つまり、移植性が非常に高いということです)。

C99 標準からの抜粋:

%Zロケールのタイム ゾーン名または略語に置き換えられるか、タイム ゾーンが判別できない場合は文字なしで置き換えられます。[ tm_isdst]

悲しいことに、すべてのシステムがそれに妥当な値を与えるわけではないことに気付きました...

于 2012-08-14T18:29:29.180 に答える