我尝试了tzset()
和settimeofday()
。但似乎tzset()
只改变用户空间时区,而不影响内核空间;而settimeofday()
只更新内核时区。
要测试的代码tzset()
:
oldtz = getenv("TZ");
putenv((char*)"TZ=UTC0");
tzset();
要测试的代码settimeofday()
:
struct timeval tv;
struct timezone tz;
gettimeofday(&tv, &tz);
tz.tz_minuteswest -= 3*60;
settimeofday(&tv, &tz);
如何同时更改用户空间和内核空间时区?