如何查找当前系统时区

How to find current system timezone

本文关键字:系统 时区 查找 何查找      更新时间:2023-10-16

我使用的是Ubuntu 10.04,并将系统时区设置为"欧洲/伦敦"。我想把系统时区设置成上面的格式,而不是"IST,EST等"。有没有办法,我可以把时区字符串设置成和我们设置的格式一样的格式,比如"欧洲/伦敦"。

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

请提出建议。

提前感谢。

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

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main() {
    char * TZ = getenv("TZ");
    if (TZ)
        printf("TZ: %sn", TZ);
    tzset();
    printf("Timezone: %s/%sn", tzname[0], tzname[1]);
    printf("GMT %s%ldn", timezone >= 0 ? "+" : "", timezone);
    printf("DST %sn", daylight ? "ON" : "OFF");
}

请注意,在某些系统(如Linux)上,此函数从TZ环境变量中检索其信息。如果未设置,则将给出近似值,或者变量将保持未初始化状态。

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

为什么不只是cat/etc/timezone?

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