我尝试将 1970 年之后的秒数读取到 QDateTime。即:startT = 1.390309552938E9
因此我使用:
QDateTime time = QDateTime::fromMSecsSinceEpoch(startT*1000); // *1000 because a have seconds while qt expecting milliseconds
现在我想将此与我使用 QDateTime::toString 得到的另一个时间进行比较:
QDate startDate = QDate::fromString(datestr, "yyyyMMdd");
QTime time = QTime::fromString(timestr, "hhmmss");
QDateTime datetime = QDateTime(date, time, Qt::UTC);
datestr 和 timestr 看起来像这样:'20140121' 和 '130358'
我想比较是否time
和datetime
相等(秒,所以毫秒除外),因此我使用这样的东西:
if (time < datetime)
但它不起作用?!有人可以在这里帮助我吗?
谢谢!
编辑:
我愿意:
QDateTime time = QDateTime::fromMSecsSinceEpoch(startT*1000);
然后我将这些信息(时间)返回给:
void Data::setTime(const QDateTime& obTime)
{
time = QDateTime(obTime);
}
obTime 是我的时代
稍后在代码中,我通过以下方式返回我的值:
QDateTime time = newData.getTime();
任何 getTime 是:
QDateTime MetObs::getTime() const
{
return time;
}
日期时间的检索同上。“时间”的两个定义并不复杂,因为它位于 Programm 的另一个位置
而不是我尝试使用:
if (time < datetime)
另一个信息:
当我将值打印为字符串时:
QString timestring = time.toString(Qt::ISODate);
QString datetimestring = datetime.toString(Qt::ISODate);
cout << timestring.toAscii().data() << endl;
cout << datetimestring.toAscii().data() << endl;
这出来了:
2014-01-21T13:03:59
2014-01-21T13:03:58Z