C语言 如何获取时区首字母缩写



我正在尝试为电子邮件创建一个Date标头。

格式如下:

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

所以一个例子是:

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

它是我试图获得的时区部分(示例中PDT)。我意识到这在各个系统之间会有所不同,但我希望为所有系统提供解决方案。

谢谢!

您正在寻找strftime() %Z

例如:

#include <stdio.h>
#include <time.h>
int main()
{
    char buf[16];
    time_t t = time(0);
    strftime(buf, sizeof(buf), "%Z", localtime(&t));
    printf("%sn", buf);
    return 0;
}

它是C89,AFAIR(这意味着它非常便携)。

C99 标准的代码片段:

%Z将替换为区域设置的时区名称或缩写,如果没有时区可确定,则替换为任何字符。[ tm_isdst ]

可悲的是,正如我们注意到的那样,并非每个系统都为其提供了合理的值......

相关内容

  • 没有找到相关文章

最新更新