在Linux中设置系统时区

时间:2013-06-20 06:01:01

标签: c linux

在C语言中是否有任何函数可以在Linux中设置系统时间? 我还必须设置我的系统时区。 换句话说,如果我的时区是IST,我可以将其设置为UTC吗?

4 个答案:

答案 0 :(得分:2)

使用stime设置时间,tzset设置时区。

请注意,settimeofdaytz(时区)参数已过时

答案 1 :(得分:1)

由环境中没有TZ变量的进程使用的默认时区由/etc/localtime的内容决定。在/usr/share/zoneinfo中找到您想要的时区,然后复制或符号链接。

rm /etc/localtime
ln -s /usr/share/zoneinfo/Etc/GMT /etc/localtime

有一些互动工具可以帮助您选择时区,但它们因发行而异(例如Debian的dpkg-reconfigure tzdata

答案 2 :(得分:1)

您可以使用此

设置时区
setenv("TZ", "PST8PDT", 1);
tzset();

答案 3 :(得分:0)

#include <sys/time.h>
#include <time.h>

int main()
{
   time_t theTimeInSeconds = time(0);

   theTimeInSeconds -= (5.5f * 60 * 60);   // sub (5.5 * 60 mins * 60 secs) from current time

   struct timeval tv = { theTimeInSeconds, 0 };

   settimeofday(&tv, 0);

   return 0;
}