Qt 如何获取当前时间戳?

Qt 如何获取当前时间戳?,qt,timestamp,Qt,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(msec

我试图获取当前时间作为时间戳,但没有成功

我有以下代码:

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)

我认为您正在寻找此功能:

uint QDateTime::toTime\u t()常量

返回日期时间,作为自1970-01-01T00:00:00,>协调世界时(Qt::UTC)以来经过的秒数

在不支持时区的系统上,此函数的行为就像本地时间是Qt::UTC一样

另请参见设置时间_t()

在Qt4.7中,有一个静态函数,它完全满足您的需要,没有任何中间步骤。因此,我建议对于使用Qt4.7或更高版本的项目。

自Qt5.8以来,我们现在必须直接交付秒数,也称为真正的Unix时间戳。因此,无需再将结果除以1000即可得到秒数


信用:也作为评论发布到。但是,如果是单独的答案,我认为更容易找到。

时间戳到底是什么意思?请提供预期的输出。我这样做了:QDateTime current=QDateTime::currentDateTime();uint timestame=current.toTime_t(),但我在这里测试结果后,它没有给出当前日期:只是尝试将QDateTime::currentDateTime().toTime\u t()返回的字符串传递到此站点,得到了正确的时间。可能您在此站点的表单中设置了错误的时区。
toTime\u t()
不推荐使用,请改用
toSecsSinceEpoch()
(返回
qint64
而不是在2106年溢出的32位
uint
),请注意,这将以毫秒而不是秒为单位返回间隔。所以现在不是unix时间!只需执行(QDateTime::currentMSecsSinceEpoch()/1000),这将使它成为Unix时间:p这个答案会让我浪费时间!因为这并不完全是@martini提到的unix时间。在Qt5.8中(在编写全新版本时),他们添加了
currentSecsSinceEpoch
函数:在PyQt5.10上工作,我相信它使用Qt5.10