私はQtでこのようなことをしたいと考えています:現在のタイムスタンプを与えてナノ秒に変換します。タイムスタンプをナノ秒(Qt)に変換する
現在のソリューションでは、実際のナノ秒の値は得られません。タイムスタンプの値の後にはゼロだけが入ります。誰かが私を助けることができる、私はQtでこれが何も見つからなかった。
ありがとうございました。
私はQtでこのようなことをしたいと考えています:現在のタイムスタンプを与えてナノ秒に変換します。タイムスタンプをナノ秒(Qt)に変換する
現在のソリューションでは、実際のナノ秒の値は得られません。タイムスタンプの値の後にはゼロだけが入ります。誰かが私を助けることができる、私はQtでこれが何も見つからなかった。
ありがとうございました。
あなたはQDateTimeクラスを探しています。特定の日付時刻を、エポックまたはviceversaからmsecsに変換することができます。
toMSecsSinceEpochを使用し、ミリ秒に日時を変換するには:
QDateTime currentDateTime = QDateTime::currentDateTime();
std::cout<< "Current DateTime : "
<< currentDateTime.toString().toStdString()
<< "\nCurrent DateTime in Milliseconds since epoch :\n"
<< currentDateTime.toMSecsSinceEpoch()
<< std::endl;
だけnanosecsにミリ秒から変換し、nanosecsに変換するには:
const qlonglong nanosecs = currentDateTime.toMSecsSinceEpoch() * 1000000:
その逆、fromMSecsSinceEpoch:
const qlonglong nanosecs = 5555555;
QDateTime myDateTime = QDateTime::fromMSecsSinceEpoch(nanosecs/1000000);
C++ 11コンパイラを使用している場合は、std::chrono
機能。 Qtはありませんが、動作します。
#include <iostream>
#include <chrono>
int main()
{
std::chrono::time_point<std::chrono::system_clock> timestamp =
std::chrono::system_clock::now();
const auto ns = std::chrono::duration_cast<std::chrono::nanoseconds>
(timestamp.time_since_epoch()).count();
std::cout << ns << std::endl;
return 0;
}
それが私がC++ 11を求めていた理由です) – Tryum
あなたはこれまで何をしていますか? – Badda
タイムスタンプは瞬間です。ナノ秒は継続時間です。ナノ秒が必要な場合は、エポックの出発点は何ですか?今日の始まり、1970年1月1日、0 AD? – Neil
[QElapsedTimer :: nsecsElapsed()](http://doc.qt.io/qt-4.8/qelapsedtimer.html) – LPs