我有两个时间戳记存储为字符串变量。时间戳格式为dd / mm / yyyy-hh:mm:ss
我试图找到两个时间戳之间的秒数差异(忽略日期)。

(我没有为a和b分配字符串,但是它们每个都有一个时间戳)

对于秒数差,它总是输出0,我不知道为什么。

std::string a, b; // hold timestamps
struct tm t, t1;
double seconds;

t.tm_hour = stoi(a.substr(11,2)); // stoi() cast substring to int
t.tm_min = stoi(a.substr(14,2));
t.tm_sec = stoi(a.substr(17,2));

t1.tm_hour = stoi(b.substr(11,2));
t1.tm_min = stoi(b.substr(14,2));
t1.tm_sec = stoi(b.substr(17,2));

seconds = difftime(mktime(&t1), mktime(&t));
std::cout<<seconds;

最佳答案

在定义之后和分配之前添加以下代码

// initialize time structures with all the details for 'now'
time_t ts;
time( &ts );
t = * localtime( &ts );
t1 = t;

关于c++ - 比较C++中的两个时间戳字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22568343/

10-09 01:05