QTime如何add/substract时间QT/C++

QTime how to add/substract time QT/C++

我正在尝试 add/substract QTime 对象中的时间。

QString time = "10:00:00";
QTime tobj = QTime::fromString(currentTime,"hh:mm:ss");
tobj.addSecs(3600);
qDebugs() << "time:" << tobj;

我希望调试器输出“11:00:00”,但它只是停留在“10:00:00”,这是为什么,我在看什么?

你的问题是 addSecs() 是一个 const 函数:https://doc.qt.io/qt-5/qtime.html#addSecs 它不修改对象而是 returns 一个新的 QTime 对象。

解决此问题的一种方法是执行以下操作:

QString time = "10:00:00";
QTime tobj = QTime::fromString(time,"hh:mm:ss").addSecs(3600);
qDebugs() << "time:" << tobj;

在这里,我将 QTime::fromString(time,"hh:mm:ss") 的输出与您对 addSecs(3600) 的调用链接在一起,设置为 tobj 的值将提前 1 小时。