C - _tzset 和 x 字母时区名称

  • 本文关键字:时区 tzset c timezone
  • 更新时间 :
  • 英文 :


如何使用以下格式在 C 中设置圣皮埃尔和密克隆群岛 (PMST3PMDT) 的时区:

set TZ=tzn[+ | –]hh[:mm[:ss] ][dzn]

如果您查看_tzset的文档,您可以阅读:

天南

三个字母的时区名称,例如 PST。必须指定从本地时间到 UTC 的正确偏移量。

4个字母(PMDT)或5个字母(EASST)的时区名称呢?以下是所有时区缩写的列表:维基百科

这是我用 C 语言测试_tzset的简单代码:

#include <stdio.h>
#include <stdlib.h>
#include <sys/timeb.h>
#include <time.h>
//add _CRT_SECURE_NO_WARNINGS in the project properties "preprocessor definitions"
int main(int argc, char* argv[])
{
    time_t t;
    struct tm * now;
    _putenv("TZ=PST8PDT"); // for pacific standard time, there is no problem
     _tzset();
    t = time(0);
    now = localtime( & t );
    printf("time: %d:%d nisdst:%dn", now->tm_hour, now->tm_min, now->tm_isdst);
    printf("_daylight=%dn", _daylight);
    printf( "_timezone=%dn", _timezone);
    printf( "_tzname[0]=%sn", _tzname[0]);
    printf( "_tzname[1]=%sn", _tzname[1]);
    return 0;
}

*我正在使用Windows8,Visual Studio 2012

从我在 Ubuntu 上的时区数据库中看到的情况来看:

/usr/share/zoneinfo/zone.tab

要使用的时区名为 America/Miquelon

所以你会想要这样做:

setenv("TZ", "America/Miquelon", 1);
tzset();

强制时区为圣皮埃尔和密克隆群岛。

我不知道这是否适用于 MS-Windows...

相关内容

  • 没有找到相关文章

最新更新