web-dev-qa-db-ja.com

現在のタイムスタンプを取得する方法は?

私は成功せずに現在の時刻をタイムスタンプとして取得しようとしています。

私はこのコードを持っています:

QDateTime setTime = QDateTime::fromString (QString("1970-07-18T14:15:09"), Qt::ISODate);
QDateTime current = QDateTime::currentDateTime();
uint msecs = setTime.time().msecsTo(current.time());

return  QString::number(msecs);

出力は

Sunday, January 25th 1970, 03:17:35 (GMT)
42
user63898

この機能を探していると思います:

http://doc.qt.io/qt-5/qdatetime.html#toTime_t

uint QDateTime :: toTime_t()const

1970-01-01T00:00:00、協定世界時(Qt :: UTC)以降に経過した秒数として日時を返します。

タイムゾーンをサポートしていないシステムでは、この関数は現地時間がQt :: UTCであるかのように動作します。

SetTime_t()もご覧ください。

35
VestniK

Qt 4.7には、 QDateTime::currentMSecsSinceEpoch() 静的関数があり、中間ステップなしで、必要なものを正確に実行します。したがって、Qt 4.7以降を使用するプロジェクトにはお勧めします。

76
Wim Leers

Qt 5.8以降、秒を直接配信するための QDateTime::currentSecsSinceEpoch() があります(別名:実際のUnixタイムスタンプ)。したがって、秒を取得するために結果を1000で割る必要はありません。

クレジット: this answer へのコメントとしても投稿されます。しかし、それが別の答えであるかどうかを見つけるのは簡単だと思います。

3
Adrian W