gpt4 book ai didi

c++ - 字符串(__DATE__)中的QDateTime无效

转载 作者:行者123 更新时间:2023-12-02 10:12:53 24 4
gpt4 key购买 nike

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

QString dateString = QString(__DATE__).simplified();
QDateTime date = QDateTime::fromString(dateString, "MMM d yyyy");
qDebug() << "Build date " << date.toMSecsSinceEpoch();
dateString = Jul 14 2020的内容,因此没有多余的空格。
为什么不起作用。
以下代码可以正常工作:
qDebug() << "Build date 2" << QDateTime(QLocale("en_US").toDate(QString(__DATE__).simplified(), "MMM d yyyy")).toMSecsSinceEpoch();
它具有相同的日期格式,也基于 __DATE__
输出为:
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();
}
我在ubuntu 18.04上运行。

最佳答案

QDateTime::fromString() (Qt 5.12)文档中:

Note: Unlike the other version of this function, day and month names must be given in the user's local language. It is only possible to use the English names if the user's language is English.


您的系统区域设置必须是英语以外的其他语言,这就是为什么它无法正常工作的原因。

关于c++ - 字符串(__DATE__)中的QDateTime无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62894735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com