【问题标题】:Qt 5.2.1: cannot parse date/timeQt 5.2.1:无法解析日期/时间
【发布时间】:2014-05-19 08:26:37
【问题描述】:

我在使用 Qt 5.2.1 从 QString 解析日期时遇到问题...

我正在使用以下代码:

QString value = "1979-10-27T04:00:00.000";
QDateTime dt = QDateTime::fromString(value, "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'zzz");

但是返回的QDateTime 无效……我做错了什么?

【问题讨论】:

  • 你的格式字符串中应该有那些单引号吗?
  • 你的代码没有问题。运行时有效。
  • @Jongware,不,不是骗子,这里的格式是正确的。 Morix,你说的无效是什么意思?您的代码返回哪个日期时间值?
  • @FrédéricHamidi:你说得对,我同意。撤回以防止其他人点击“哦,一定是它”:-)
  • 您的代码原样在虚拟主目录中为我工作。您如何确定日期无效?

标签: c++ qt qt5 qdatetime


【解决方案1】:

这可能是由于 Creator 中存在以下错误:

GDB pretty printer for QDateTime is broken, shows “(invalid)” even when QDateTime is not invalid

根据最新评论 (01/Apr/14),它现在显示一个有效日期,直到它被展开:

现在看起来好多了。 QDateTime 显示一种人类可读的格式。只有当我尝试扩展它时,它才会变成“不可访问”。

我建议升级您的 Creator 版本。

拥有与 Qt 一样多的用户,如果您通过 Jira 进行快速搜索,您通常会发现现有的错误报告。

【讨论】:

    【解决方案2】:

    谢谢你们的帮助:我认为问题肯定与 QtCreator(或至少与调试器)有关...

    我说QDateTime 无效,因为QtCreator 的表达式手表告诉我(从下面的屏幕截图中可以看到)...但是如果我qDebug() 我的日期时间,那么它看起来是正确的。 ..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 2023-02-15
      • 2021-01-01
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 2014-01-29
      相关资源
      最近更新 更多