我试着把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;
}datetime的检索与上面提到的相同。时间的两个定义并不复杂,因为它位于程序的另一个位置
然后我试着使用:
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发布于 2014-04-16 18:36:49
如下所示:
time.toTime_t() == datetime.toTime_t()该方法返回从纪元开始的秒数。
注意1:如果你想测试等价性,为什么要使用<?
注意2:你不应该以双精度存储时间值-这可能会导致精度损失。uint32_t适用于数秒,而uint64_t则需要r毫秒。
https://stackoverflow.com/questions/23106090
复制相似问题