Konvertieren Sie eine QDateTime in UTC auf lokale system-Zeit

Baue ich eine QDateTime aus einer Zeichenfolge wie diese:

QDateTime date = QDateTime::fromString("2010-10-25T10:28:58.570Z", "yyyy-MM-ddTHH:mm:ss.zzzZ");

Ich weiß, dass date in UTC-denn das ist die Art, wie es gespeichert ist. Aber wenn ich will, um dieses Datum für den Benutzer, sollte der Benutzer die lokale Zeitzone. Datum.toLocalTime() sieht vielversprechend aus, aber es gibt das exakt gleiche Datum!

Wie kann ich umwandeln date auf der lokalen Zeit, die Anzeige für den Benutzer?

Hier sind einige weitere Ausfälle:

#include <QtCore/QCoreApplication>
#include <QtCore/QDateTime>
#include <QtCore/QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QDateTime date = QDateTime::fromString("2010-10-25T10:28:58.570Z", "yyyy-MM-ddTHH:mm:ss.zzzZ");
    QDateTime local = date.toLocalTime();

    qDebug() << "utc: " << date;
    qDebug() << "local: " << local.toString();
    qDebug() << "hax: " << local.toString(Qt::SystemLocaleLongDate);

    return a.exec();
}

Ausgabe:

utc:  QDateTime("Mon Oct 25 10:28:58 2010")
local:  "Mon Oct 25 10:28:58 2010"
hax:  "Monday, October 25, 2010 10:28:58 AM"

InformationsquelleAutor andrewrk | 2010-10-27

Schreibe einen Kommentar