先说一些理论:
根据 Qt 文档 QDateTime::toSecsFromEpoch() 函数:
将日期时间作为自协调世界时间 1970-01-01T00:00:00.000 以来经过的秒数返回。
和:
[...] 对于所有有效日期,此函数返回一个唯一值。
这是Qt 文档中此特定函数描述的链接。
我的实现
这里有几行代码试图利用这个函数的功能:
#include <QtCore>
#include <iostream>
int main()
{
QDateTime* time = new QDateTime(QDateTime::currentDateTime());
QString secs1 = QString::number(time->toSecsSinceEpoch());
std::cout << secs1.toStdString() << std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(10000));
QString secs2 = QString::number(time->toSecsSinceEpoch());
std::cout << secs2.toStdString();
}
现在,secs1
andsecs2
变量应该包含不同的值,但事实并非如此......这是程序的输出:
1601491247
1601491247
等待十秒钟后,值secs2
应该不同。我不知道为什么不是。
会不会是 QDateTime 对象的初始化方式错误?或者可能是一些系统相关的错误?我搜索了与我的问题相关的信息,但一无所获。请帮忙。