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 回答