2016-04-12 21 views
1

Ich bin mit diesem Problem festgefahren.Erhalten Sie lokale Zeit in Sekunden mit Qt

Ich habe bereits die currentUTCtime in Sekunden aus der QDateTime. Problem ist, ich kann keine Möglichkeit finden, dies in die lokale Zeit in Sekunden umzuwandeln. Es gibt einige QDate-Funktionen wie toLocalTime(), die einfach nicht zu funktionieren scheinen. Ich hoffe, hier kann mir jemand helfen.

QDateTime::currentMSecsSinceEpoch(); 
QDateTime currentateTime = QDateTime::currentDateTime(); 
QDateTime UTC(QDateTime::currentDateTimeUtc()); 
currentDateTime.toString().toStdString(); 
TimeNow = currentDateTime.toMSecsSinceEpoch()/1000; 

Oben ist mein Code für die currentUTC Zeit in Sekunden.

Antwort

0

Verwendung QDateTime::fromTime_t, auf die sich die Dokumentation heißt es:

Gibt eine Datetime, deren Datum und die Uhrzeit sind die Anzahl der Sekunden, die seit 1970-01-01T00 bestanden haben: 00: 00, Coordinated Universal Time (Qt :: UTC) und konvertiert zu der angegebenen Spezifikation.

qint64 utcTime = QDateTime::currentMSecsSinceEpoch(); 
QDateTime localTime = QDateTime::fromTime_t(utcTime, Qt::LocalTime); 
+0

ah das ist ein nett. Vielen Dank! Das Problem besteht nun darin, dass ein Fehler vorliegt, der besagt: Keine passende Funktion für den Aufruf von 'QDateTime :: fromTime_t (qint64 &, Qt :: TimeSpec)' fehlt mir etwas? – MuchWow

+0

Sie müssen mindestens Qt 5.2 verwenden – TheDarkKnight

+0

Oh, das wird das Problem sein. Was an dieser Stelle gerade nicht realisierbar ist. Könnte es einen anderen Weg geben, dies zu tun? Danke – MuchWow

1

Wenn Sie nur die Zeit in Sekunden seit der Epoche Sie QDateTime::toTime_t() verwenden können; Diese Methode existiert in Qt 4.7 und scheint auch von Anfang an Teil von Qt 5 zu sein.

QDateTime::currentDateTime().toTime_t() 

für die lokale Zeit oder für UTC

QDateTime::currentDateTimeUtc().toTime_t()