我尝试在我的程序中使用QDateTime已经有一段时间了,没那么走运。我不确定我做错了什么,这让我有点抓狂。
代码片段如下:
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())
{这三个日期时间在运行时都是无效的。
提前谢谢。
发布于 2014-10-14 23:47:46
由于在QDateTime上调用.time()时出现异常,一个或多个QDateTime对象无效。
我建议你分解这几行:
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).返回的内容
也可以尝试以下几种方法:
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");
}如果在应用程序输出窗口(或控制台,如果您从那里运行)中显示日期无效,请清除项目并重新生成。
https://stackoverflow.com/questions/26363986
复制相似问题