首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QDateTime (currentDateTime()和fromString())的问题

QDateTime (currentDateTime()和fromString())的问题
EN

Stack Overflow用户
提问于 2014-10-14 22:57:37
回答 1查看 3.8K关注 0票数 0

我尝试在我的程序中使用QDateTime已经有一段时间了,没那么走运。我不确定我做错了什么,这让我有点抓狂。

代码片段如下:

代码语言:javascript
复制
QDateTime dteNow = QDateTime::currentDateTime();
QDateTime dteStart = QDateTime::fromString(QString::fromStdString(advertSchedule.ValidFrom),"yyyy-MM-dd hh:mm:ss"); //ValidFrom = "1990-01-01 00:00:00"
QDateTime dteFinish = QDateTime::fromString(QString::fromStdString(advertSchedule.ValidTo),"yyyy-MM-dd hh:mm:ss"); //ValidTo = "2015-01-01 00:00:00"

//Breakpointed on the line below. Continuing to run causes an exception. 
//Hovering over the QDateTime objects displays "dteNow (invalid) QDateTime".
if(dteNow >= dteStart
    && dteNow < dteFinish
    && dteNow.time() >= dteStart.time()
    && dteNow.time() < dteFinish.time())
{

这三个日期时间在运行时都是无效的。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-10-14 23:47:46

由于在QDateTime上调用.time()时出现异常,一个或多个QDateTime对象无效。

我建议你分解这几行:

代码语言:javascript
复制
QDateTime::fromString(QString::fromStdString(advertSchedule.ValidFrom),"yyyy-MM-dd hh:mm:ss");
QDateTime dteFinish = QDateTime::fromString(QString::fromStdString(advertSchedule.ValidTo),"yyyy-MM-dd hh:mm:ss"); 

检查调用QString::fromStdString(advertSchedule.ValidFrom)和QString::fromStdString(advertSchedule.ValidTo).返回的内容

也可以尝试以下几种方法:

代码语言:javascript
复制
QDateTime dteNow = QDateTime::currentDateTime();
if(dteNow.isValid())
{
    qDebug("The date is valid: %s\n", dteNow.toString());
}
else
{
    qDebug("The current date returned is invalid\n");
}

如果在应用程序输出窗口(或控制台,如果您从那里运行)中显示日期无效,请清除项目并重新生成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26363986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档