void tzset()
根据TZ
环境变量设置时区
。
在调用此函数之前,必须先设置TZ
环境变量的值。
#include <stdlib.h>
#include <time.h>
int main() {
setenv("TZ", "Asia/Shanghai", 1);
tzset();
...
return 0;
}
TZ
环境变量的值可以是Asia/Shanghai
、GMT-8
、Hongkong
、Japan
等。
TZ
环境变量的值可以设置为/usr/share/zoneinfo
目录下的文件名
。
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#include <stdio.h>
int main() {
setlocale(LC_ALL, "zh_CN.UTF-8");
setenv("TZ", "Asia/Shanghai", 1);
tzset();
time_t tt = time(NULL);
struct tm *tms = localtime(&tt);
char buff[30] = {0};
strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S %A", tms);
printf("现在是上海时间:%s\n", buff);
return 0;
}
使用cc命令编译 ⤵︎
cc -o test_time test.c
运行结果如下 ⤵︎
现在是上海时间:2019-03-18 18:06:05 星期一