1970年1月1日からの時間をナノ秒単位で保存したファイルからデータを読み取ろうとしています。私の問題は、それをQDateTime
オブジェクトに読みたいのですが、それは私が望むように単に機能せず、Qtドキュメントも私を助けませんでした。
注:ミリ秒ラスターは私の目的には十分ですここに私の現在のアプローチ:
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は明らかに私が望んでいたものであり(ミリ秒の解像度を除く)、それは期待どおりに機能しますが、上記のアプローチが機能しない理由は本当に興味があります。
変更されたハックアウェイバグを1E6乗法から1E6に編集します