ich eine QDateTime aus einem String wie folgt konstruieren:Wandle QDateTime in UTC zu lokalen Systemzeit
QDateTime date = QDateTime::fromString("2010-10-25T10:28:58.570Z", "yyyy-MM-ddTHH:mm:ss.zzzZ");
Ich weiß, dass date
in UTC ist denn das ist die Art und Weise ist es gespeichert ist. Aber wenn ich dieses Datum dem Benutzer anzeigen möchte, sollte es in der lokalen Zeitzone des Benutzers sein. sieht vielversprechend aus, aber es gibt genau das gleiche Datum zurück!
Wie konvertiere ich date
in die lokale Zeit des Systems, um sie dem Benutzer anzuzeigen?
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();
}
Ausgang:
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"
versuchte es, hat nicht funktioniert. Siehe Bearbeitungen zur Frage – andrewrk