我即將從1970年1月1日開始存儲時間爲納秒的文件中讀取數據。我的問題是我想將它讀取到QDateTime
對象,但它根本無法正常工作,Qt文檔也無法幫助我。Qt QDateTime 1970年1月1日以後的納秒
注:毫秒光柵夠我的目的 這裏我目前的做法:
void setDateTime(qint64 &ns)
{
_datetime.setDate(QDate(1970,1,1));
_datetime.setTime(QTime(0,0,0,0));
ns /= 1000; //ns are now ms
qDebug() << "| ms = " << ns;
qDebug() << "| days = " << static_cast<int>(ns%(60*60*24*1E6));
_datetime.addDays(static_cast<int>(ns%(60*60*24*1000)));
_datetime.addMSecs(ns - ((ns/(60*60*24*1000))*60*60*24*1E6));
qDebug() << "| dt = " << _datetime;
}
結果總是
| dt = QDateTime("Thu Jan 1 00:00:00 1970")
這肯定是錯誤的
任何人可以告訴在我的缺陷是?感謝您的任何提示和幫助。
編輯:setTime_t顯然是我想要的(除了msec分辨率),並按預期工作,但我很好奇爲什麼上述方法無效。
編輯改變劈離臭蟲從1E6乘到1E6
請注意,1000ns是1us(微秒),而QDateTime方法使用的是毫秒。所以你可能應該將ns除以1000000而不是od 1000. – chalup 2010-07-01 09:43:57
你說得對,但是這個在我的代碼中被修復了,只是忘了改變那個「黑客」 – drahnr 2010-07-01 20:08:38