1970年1月1日からQT QDateTimeナノ秒
-
01-10-2019 - |
質問
1970年1月1日からナノ秒単位で保存されているファイルからデータを読み込もうとしています。私の問題は私がそれを読みたいということです QDateTime
オブジェクトですが、それは私が望むように機能しないだけで、QTドキュメントも私を助けませんでした。
注:Millisecondsラスターは、ここでの私の目的で十分です。
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に変更しました
解決
QDateTime::addDays()
と QDateTime::addMSecs()
const関数は新しいものを返しています QDateTime
. 。あなたは単に返品値を捨てているだけです。
そして、はい、これはに書かれています ドキュメンテーション.
所属していません StackOverflow