gpt4 book ai didi

C++ time(NULL) 给出不一致的结果

转载 作者:搜寻专家 更新时间:2023-10-30 23:59:27 26 4
gpt4 key购买 nike

我有以下函数来获取自当前午夜纪元以来的秒数。

long int midnight_time()
{
time_t t;
struct tm *local;
t = time(NULL);
struct tm timeinfo;
local = localtime(&t);
timeinfo.tm_year = local->tm_year;
timeinfo.tm_mon = local->tm_mon;
timeinfo.tm_mday = local->tm_mday;
timeinfo.tm_hour = 0;
timeinfo.tm_min=0;
timeinfo.tm_sec=0;
long int midnight_epoch = mktime(&timeinfo);
return midnight_epoch;
}

当我在代码中调用此函数两次后,例如

cout<<midnight_time()<<endl;
cout<<midnight_time()<<endl;

我总是得到截然不同的结果,例如:13678164001367812800

这相差将近4000秒。我希望数字是相同的。谁能看出我做错了什么?

最佳答案

tm_isdst 标志不是没有设置吗?时差恰好是 1 小时。

关于C++ time(NULL) 给出不一致的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16409538/

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