我试图将当前时间作为TimeStamp而没有成功。
我有这个代码:
QDateTime setTime = QDateTime::fromString (QString("1970-07-18T14:15:09"), Qt::ISODate);
QDateTime current = QDateTime::currentDateTime();
uint msecs = setTime.time().msecsTo(current.time());
return QString::number(msecs);
输出是
Sunday, January 25th 1970, 03:17:35 (GMT)
我想你正在寻找这个功能:
http://doc.qt.io/qt-5/qdatetime.html#toTime_t
uint QDateTime :: toTime_t()const
返回datetime,作为自1970-01-01T00:00:00,>协调世界时(Qt :: UTC)以来经过的秒数。
在不支持时区的系统上,此函数的行为就像本地时间是Qt :: UTC一样。
另请参见setTime_t()。
在Qt 4.7中,有QDateTime::currentMSecsSinceEpoch()
静态函数,它可以完全满足您的需要,无需任何中间步骤。因此我建议使用Qt 4.7或更新的项目。
从Qt 5.8开始,我们现在有QDateTime::currentSecsSinceEpoch()
直接提供秒,a.k.a。作为真正的Unix时间戳。因此,无需将结果除以1000即可获得秒数。
致谢:也发表评论this answer。但是,我认为更容易找到它是否是一个单独的答案。