Qt 5.2.1: 无法解析日期/时间

3

我在使用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
你的代码没有问题。当我运行它时,它是有效的。 - Nejat
@Jongware,不是重复问题,这里的格式是正确的。Morix,你所说的“无效”是什么意思?你的代码返回哪个日期时间值? - Frédéric Hamidi
@FrédéricHamidi:你是对的,我同意。撤回以防其他人点击“哦,那一定是这个问题” :-) - Jongware
你的代码在一个虚拟主函数中对我有效。你是如何确定日期无效的? - Mat
请看下面我的答案...无论如何感谢您的帮助。 - Morix Dev
2个回答

2
这很可能是由于Creator中以下bug引起的: GDB pretty printer for QDateTime is broken, shows “(invalid)” even when QDateTime is not invalid 根据最新评论(01/Apr/14),它现在显示一个有效日期,直到它被展开为止:
“它看起来好多了。QDateTime显示了一个人类可读的格式。只有当我尝试扩展它时,它才变得"不可访问"。”
我建议您升级您的Creator版本。
由于Qt拥有如此多的用户,如果您快速搜索Jira,您通常会找到现有的错误报告来解决您的问题。

1
感谢大家的帮助:我认为问题明显与QtCreator(或至少是调试器)有关... 我说QDateTime无效,因为QtCreator的表达式监视器告诉我如此(如下图所示)... 但如果我使用qDebug()调试我的日期时间,它看起来是正确的...

Screenshot from my PC


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接