Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何查找当前系统时区_C++_C_Linux_Timezone - Fatal编程技术网

C++ 如何查找当前系统时区

C++ 如何查找当前系统时区,c++,c,linux,timezone,C++,C,Linux,Timezone,我正在使用Ubuntu10.04并设置系统时区欧洲/伦敦。 我只想在上面的格式中设置系统时区,而不是IST、EST等。。不管怎样,我都可以得到与欧洲/伦敦相同格式的时区字符串 正如上面的链接是重复的,但实际上它并没有回答我的问题。在发布这个问题之前,我已经检查了上面的链接 请建议 提前感谢。time.h定义了一个函数来检索系统时区并将其保存在两个字符串变量中: #include <stdlib.h> #include <stdio.h> #include <time

我正在使用Ubuntu10.04并设置系统时区欧洲/伦敦。 我只想在上面的格式中设置系统时区,而不是IST、EST等。。不管怎样,我都可以得到与欧洲/伦敦相同格式的时区字符串

正如上面的链接是重复的,但实际上它并没有回答我的问题。在发布这个问题之前,我已经检查了上面的链接

请建议

提前感谢。

time.h定义了一个函数来检索系统时区并将其保存在两个字符串变量中:

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

int main() {
    char * TZ = getenv("TZ");
    if (TZ)
        printf("TZ: %s\n", TZ);
    tzset();
    printf("Timezone: %s/%s\n", tzname[0], tzname[1]);
    printf("GMT %s%ld\n", timezone >= 0 ? "+" : "", timezone);
    printf("DST %s\n", daylight ? "ON" : "OFF");
}
请注意,在某些系统(如Linux)上,此函数从TZ环境变量检索其信息。如果未设置,则将给出近似值,或者变量将保持未初始化状态


在我的OS X上,这些信息似乎来自其他地方。

为什么不只是cat/etc/timezone

amrith@amrith-vbox:~/so$ more /etc/timezone
America/New_York

看看这个:但我不确定是否有这样的事情。见更新谢谢。我已经检查了上面的链接,但在链接中没有合适的解决方案,我发现这就是为什么我第二次问这个问题。有人有什么想法吗?请分享。我运行了你的程序,它给了我这个。amrith@amrith-vbox:~/so$./tz时区:美国东部时间/美国东部时间GMT+18000夏令时ONamrith@amrith-vbox:~/so$不是问题要求的,我不认为…是的,上面的程序不会给出要求的输出。输出应该是亚洲/加尔各答或欧洲/伦敦的字符串。谢谢。正如我所知,/etc/timezone并不适用于所有类型的linux操作系统Red hat、fedora、cent OS、ubuntu等。所以我认为它不是通用的解决方案。真的吗?我应该提醒你,你的问题是,我正在使用Ubuntu 10.04和。。。。