wake-up-neo.com

Wie bekomme ich den aktuellen TimeStamp?

Ich versuche die aktuelle Zeit als TimeStamp zu bekommen, ohne Erfolg.

Ich habe diesen Code:

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);

Die Ausgabe ist

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

Ich denke, Sie suchen nach dieser Funktion:

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

uint QDateTime :: toTime_t () const

Gibt die Datumszeit als Anzahl der Sekunden zurück, die seit dem 01.01.1970, 00:00 Uhr,> Koordinierte Weltzeit (Qt :: UTC) vergangen sind.

Auf Systemen, die keine Zeitzonen unterstützen, verhält sich diese Funktion so, als wäre die Ortszeit Qt :: UTC.

Siehe auch setTime_t ().

35
VestniK

In Qt 4.7 gibt es die statische Funktion QDateTime::currentMSecsSinceEpoch() , die genau das tut, was Sie brauchen, ohne Zwischenschritte. Daher würde ich das für Projekte mit Qt 4.7 oder neuer empfehlen.

76
Wim Leers

Seit Qt 5.8 haben wir nun QDateTime::currentSecsSinceEpoch() , um die Sekunden direkt zu liefern, a.k.a. als echten Unix-Zeitstempel. Das Ergebnis muss also nicht mehr durch 1000 geteilt werden, um Sekunden zu erhalten.

Credits: auch gepostet als Kommentar zu diese Antwort . Ich denke jedoch, es ist einfacher zu finden, ob es sich um eine separate Antwort handelt.

3
Adrian W