【问题标题】:Can not convert QString to QDateTime无法将 QString 转换为 QDateTime
【发布时间】:2018-06-17 16:27:49
【问题描述】:

我必须通过 QDateTime::fromString 方法将 QString 转换为 QDateTime。我有包含“Wed, 13 Jun 2018 12:52”的 QString 对象。但是当我使用它时 QDateTime::fromString 返回无效对象,我不知道为什么。我使用“ddd,MM-MMM-yyyy HH:MM”格式。谁能告诉我我做错了什么?

我的代码:

QString tempDate; //Wed, 13 Jun 2018 12:52
QDateTime::fromString(tempDate, "ddd, MM-MMM-yyyy HH:MM"); //returns invalid obj

【问题讨论】:

  • 尝试不使用-
  • 同样的结果。 QDateTime 对象仍然无效。

标签: c++ qt qdatetime


【解决方案1】:

您的 QDateTime 格式与您的输入字符串不对应。

Wed, 13 Jun 2018 12:52 应与ddd, dd MMM yyyy HH:mm 匹配。

QDateTime::fromString

此外,请确保在进行转换时使用正确的语言环境,因为 dddMMM 已本地化。使用QLocale::setDefaultQLocale::toDateTime 更改本地:

QLocale(QLocale::English).toDateTime(tempDate, "ddd, dd MMM yyyy HH:mm");

【讨论】:

  • 非常感谢!真的很有帮助。
【解决方案2】:

QDateTime startTime = QDateTime::fromString (QString("1970-07-18T00:00:00"), Qt::ISODate);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 2019-12-23
    • 2011-08-21
    • 2012-04-01
    相关资源
    最近更新 更多