如何知道系统正在使用哪个时区

我正在做一些代码,我需要知道系统中的哪个时区处于活动状态(我正在使用Linux SO):

我很确定,有一个简单的(最一致的)方法来实现这一点。 我正在寻找像“欧洲/巴黎”或“UTC + 2”或类似的东西

任何帮助将不胜感激!

作为一个起点,我会提出这样的建议:

 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { char str[64]; time_t timer; struct tm * ptm; timer = time(NULL); ptm = localtime(&timer); strftime(str, sizeof(str), "%Z", ptm); printf("TZ: %s\n", str); return(0); } 

date +%Z命令显示当前时区,但实际需要的是正确设置。 首先删除当前的时区文件:

 # rm -f /etc/localtime 

然后为你的时区设置正确的:

 # ln -s /usr/share/zoneinfo/<your-time-zone-here> /etc/localtime 

做一个ls /usr/share/zoneinfo/来查看可用的时区。 对我来说是/usr/share/zoneinfo/Europe/Amsterdam

然后使用上面提到的date命令进行验证。