gpt4 book ai didi

c - UTC 到 ANSI C 中的一天中的时间?

转载 作者:太空狗 更新时间:2023-10-29 15:21:00 26 4
gpt4 key购买 nike

如何将utc时间转换为本地时间?

最佳答案

您必须混合使用 tzset() 和 time/gmtime/localtime/mktime 函数。

试试这个:

#include <stdio.h>
#include <stdlib.h>

#include <time.h>

time_t makelocal(struct tm *tm, char *zone)
{
time_t ret;
char *tz;

tz = getenv("TZ");
setenv("TZ", zone, 1);
tzset();
ret = mktime(tm);
if(tz)
setenv("TZ", tz, 1);
else
unsetenv("TZ");
tzset();
return ret;
}

int main(void)
{
time_t gmt_time;
time_t local_time;
struct tm *gmt_tm;

gmt_time = time(NULL);
gmt_tm = gmtime(&gmt_time);
local_time = makelocal(gmt_tm, "CET");

printf("gmt: %s", ctime(&gmt_time));
printf("cet: %s", ctime(&local_time));

return 0;
}

基本上,此程序将当前计算机日期作为 GMT(时间(NULL)),并将其转换为 CET:

$ ./tolocal 
gmt: Tue Feb 16 09:37:30 2010
cet: Tue Feb 16 08:37:30 2010

关于c - UTC 到 ANSI C 中的一天中的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2271408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com