如何获得当前的TimeStamp?

问题描述 投票:42回答:3

我试图将当前时间作为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)
qt timestamp
3个回答
35
投票

我想你正在寻找这个功能:

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()。


75
投票

在Qt 4.7中,有QDateTime::currentMSecsSinceEpoch()静态函数,它可以完全满足您的需要,无需任何中间步骤。因此我建议使用Qt 4.7或更新的项目。


2
投票

从Qt 5.8开始,我们现在有QDateTime::currentSecsSinceEpoch()直接提供秒,a.k.a。作为真正的Unix时间戳。因此,无需将结果除以1000即可获得秒数。

致谢:也发表评论this answer。但是,我认为更容易找到它是否是一个单独的答案。

© www.soinside.com 2019 - 2024. All rights reserved.