C++ QDateTime::toSecsSinceEpoch()似乎不起作用

C++ QDateTime::toSecsSinceEpoch()似乎不起作用,c++,qt,datetime,epoch,qdatetime,C++,Qt,Datetime,Epoch,Qdatetime,首先是一些理论: 根据Qt文档,QDateTime::toSecsFromEpoch()函数: #include <QtCore> #include <iostream> int main() { QDateTime* time = new QDateTime(QDateTime::currentDateTime()); QString secs1 = QString::number(time->toSecsSinceEpoch());

首先是一些理论:

根据Qt文档,QDateTime::toSecsFromEpoch()函数:

#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();
}
返回日期时间,作为自协调世界时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();
}
等待10秒钟后,
secs2
的值应该不同。我不知道为什么不是


QDateTime对象是否以错误的方式初始化?或者可能是某个系统相关的错误?我搜索了与我的问题相关的信息,但什么也没找到。请帮助。

QDateTime不会持续更新。它存储特定的日期和时间。所以无论你等待多久,它都会给你同样的价值。要修复代码,可以执行以下操作:

    QDateTime time1 = QDateTime::currentDateTime();
    QString secs1 = QString::number(time1.toSecsSinceEpoch());
    std::cout << secs1.toStdString() << std::endl;

    std::this_thread::sleep_for(std::chrono::milliseconds(10000));

    QDateTime time2 = QDateTime::currentDateTime();
    QString secs2 = QString::number(time2.toSecsSinceEpoch());
    std::cout << secs2.toStdString();
QDateTime time1=QDateTime::currentDateTime();
QString secs1=QString::number(time1.toSecsSinceEpoch());
标准::cout
“现在,secs1和secs2变量应该包含不同的值,但情况并非如此…”

不,他们不


QDateTime
不是时钟,它只是一个将任何给定时刻表示为DateTime对象的类。

“等待10秒后,秒2的值应该不同”
:不,
time
仍然是指构建它的时间值。谢谢!我很抱歉没有深入阅读这些文件。谢谢!如果我只是更深入地阅读这些文档,我会明白的,但是疲劳成功地阻止了我这么做,哈哈。