gpt4 book ai didi

C++ - 时区转换

转载 作者:行者123 更新时间:2023-11-28 03:51:59 24 4
gpt4 key购买 nike

我有以下代码来找出 UTC 和本地时区之间的差异。

struct tm *local_time, *gmt_time;
time_t t = time(NULL);
local_time = localtime(&t);
gmt_time = gmtime(&t);
int y = mktime(local_time);
int x = mktime(gmt_time);
tzone_diff = y - x;

这行不通。但是,如果我将语句 gmt_time = gmtime(&t) 移动到 int y = mktime(local_time); 下面有用。那就是下面这段代码的工作原理:

struct tm *local_time, *gmt_time;
time_t t = time(NULL);
local_time = localtime(&t);
int y = mktime(local_time);
gmt_time = gmtime(&t);
int x = mktime(gmt_time);
tzone_diff = y - x;

这对我来说似乎很奇怪..有什么线索吗?

最佳答案

localtime 和 gmtime 都返回一个指向 struct tm 的指针。这个 struct tm 是在 C 库的某处定义的,并且对于两个函数来说很容易相同。类似下面的内容。

struct tm temp;

struct tm * gmtime() {
...
return &temp;
}

struct tm * localtime() {
...
return &temp;
}

关于C++ - 时区转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5166315/

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