C++ QDateTime来自字符串(_日期__)无效

C++ QDateTime来自字符串(_日期__)无效,c++,qt,date,C++,Qt,Date,当im运行以下代码时,qdatetime无效: QString dateString = QString(__DATE__).simplified(); QDateTime date = QDateTime::fromString(dateString, "MMM d yyyy"); qDebug() << "Build date " << date.toMSecsSinceEpoch(); 它具有相同的日期格式,并且也基于\u

当im运行以下代码时,qdatetime无效:

QString dateString = QString(__DATE__).simplified();
QDateTime date =  QDateTime::fromString(dateString, "MMM d yyyy");
qDebug() << "Build date " << date.toMSecsSinceEpoch();
它具有相同的日期格式,并且也基于
\uuuuuu日期

输出为:

Build date  -3600000
Build date 2 1594677600000
我的完整代码:

#include <QCoreApplication>
#include <QDate>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString dateString = QString(__DATE__).simplified();
    QDateTime date =  QDateTime::fromString(dateString, "MMM d yyyy");
    qDebug() << "Build date " << date.toMSecsSinceEpoch();    
    qDebug() << "Build date 2" << QDateTime(QLocale("en_US").toDate(QString(__DATE__).simplified(), "MMM d yyyy")).toMSecsSinceEpoch();

    return a.exec();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
QString dateString=QString(_DATE__).simplified();
QDateTime日期=QDateTime::fromString(日期字符串,“MMM d yyyy”);
qDebug()来自(Qt 5.12)文档:

注意:与此函数的其他版本不同,日期和月份名称必须使用用户的本地语言。如果用户的语言为英语,则只能使用英语名称


您的系统区域设置必须不是英语,这就是它无法工作的原因。

@waqar结果是变量日期无效,我希望它是有效的。您能显示结果吗?以及预期结果吗?@waqar QDateTime date确实无效。我更新了答案,使两者都包含日期时间。@waqar我复制了我的complete源代码。您是否可以尝试
QLocale::system()
而不是
QLocale(“en_US”)
并告诉我输出是什么?
#include <QCoreApplication>
#include <QDate>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QString dateString = QString(__DATE__).simplified();
    QDateTime date =  QDateTime::fromString(dateString, "MMM d yyyy");
    qDebug() << "Build date " << date.toMSecsSinceEpoch();    
    qDebug() << "Build date 2" << QDateTime(QLocale("en_US").toDate(QString(__DATE__).simplified(), "MMM d yyyy")).toMSecsSinceEpoch();

    return a.exec();
}