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