gpt4 book ai didi

c++ - Unixtime 转换为可比时间

转载 作者:行者123 更新时间:2023-11-28 06:53:40 25 4
gpt4 key购买 nike

我有 unixtime 字符串,我想按小时和分钟比较它们。

例如:

unixtime1 = "1327418725"unixtime2 = "1327511595"

time_t convertUnixToTime(const char* unixtime){

time_t time = (time_t)atol(unixtime);
return time;
}

我这样使用函数:

time_t time1 = convertUnixToTime("1327418725");
struct tm *timeinfo1;
timeinfo1 = localtime(&time1);

time_t time2 = convertUnixToTime("1327511595");
struct tm *timeinfo2;
timeinfo2 = localtime(&time2);

cout << "time: " << asctime(timeinfo1);// << endl;
cout << "time: " << asctime(timeinfo2);// << endl;

我得到了输出:

time: Wed Jan 25 09:13:15 2012
time: Wed Jan 25 09:13:15 2012

我不明白为什么我得到相同的时间,而且我希望能够在 difftime() 之后查看它们相差多少小时和分钟。

有什么建议/见解吗?

最佳答案

localtime() 返回指向库中不可或缺的对象的指针。您将此指针存储在 timeinfo1 和 timeinfo2 中两次。

你需要复制struct tm

#include <ctime>
#include <cstdlib>
#include <iostream>

time_t convertUnixToTime(const char* unixtime){

time_t time = (time_t)atol(unixtime);
return time;
}


using namespace std;

int main()
{
time_t time1 = convertUnixToTime("1327418725");
struct tm timeinfo1;
timeinfo1 = *localtime(&time1);

time_t time2 = convertUnixToTime("1327511595");
struct tm timeinfo2;
timeinfo2 = *localtime(&time2);

cout << "time: " << asctime(&timeinfo1);// << endl;
cout << "time: " << asctime(&timeinfo2);// << endl;

return 0;
}

关于c++ - Unixtime 转换为可比时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23451453/

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