Qt和QdateTime比较

时间:2015-07-19 09:05:27

标签: c++ qt

我在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");

我怎样才能得到比较两个日期的正确结果。谢谢你的帮助!

1 个答案:

答案 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);

输出

  • &#34; 24.07.15 20:35&#34; &#34; 26.07.2015 15:35&#34; 154775
  • &#34; 24.07.15 20:35&#34; &#34; 26.07.2015 15:35&#34; 154762

围绕您的代码

 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);
  • &#34; 24.07.2015 20:47&#34; &#34; 26.07.1915 15:35&#34; -3155602364