QTime 如何加/减时间 QT/C++

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

本文关键字:QT C++ 时间 何加 QTime      更新时间:2023-10-16

我正在尝试在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()是一个常量函数: https://doc.qt.io/qt-5/qtime.html#addSecs 它不会修改对象,但返回一个新的 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 小时。