我在qt qdatetime比较中遇到了麻烦
if(now.secsTo(nearest)>0)
始终显示相同的数字。
QDateTime now = QDateTime::currentDateTime();
QDateTime nearest = QDateTime::fromString(ui.timetableTable->item(0,2)->data(Qt::DisplayRole).toString(),"dd.MM.yy HH:mm");
我怎样才能得到比较两个日期的正确结果。谢谢你的帮助!
答案 0 :(得分:0)
问题是对象以不同的格式进行比较。 替换" dd.MM.yy HH:mm"到" dd.MM.yyyy HH:mm"并会让你幸福。事实证明,Qt比较了1915年和2015年。
QDateTime now = QDateTime::currentDateTime();
QDateTime nearest = QDateTime::fromString("26.07.2015 15:35","dd.MM.yyyy HH:mm");
qDebug() << now.toString("dd.MM.yy HH:mm") << nearest.toString("dd.MM.yyyy HH:mm") << now.secsTo(nearest);
输出
围绕您的代码
QDateTime nearest = QDateTime::fromString("26.07.15 15:35","dd.MM.yy HH:mm");
qDebug() << now.toString("dd.MM.yyyy HH:mm") << nearest.toString("dd.MM.yyyy HH:mm") << now.secsTo(nearest);