Konvertiere eine QDateTime in UTC in lokale Systemzeit

9

Ich konstruiere eine QDateTime aus einem String wie folgt:

%Vor%

Ich weiß, dass date in UTC ist, weil es so gespeichert ist. Aber wenn ich dieses Datum dem Benutzer anzeigen möchte, sollte es in der lokalen Zeitzone des Benutzers sein. date.toLocalTime() sieht vielversprechend aus, gibt aber 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 Fehler:

%Vor%

Ausgabe:

%Vor%     
andrewrk 27.10.2010, 06:26
quelle

2 Antworten

17

QDateTime weiß, ob es UTC oder lokale Zeit ist. Zum Beispiel:

%Vor%

Wir müssen date mitteilen, dass es sich um eine UTC-Datumszeit mit date.setTimeSpec(Qt::UTC) handelt:

%Vor%

Ausgabe:

%Vor%

Ich bin in GMT-7, also ist das richtig.

    
andrewrk 27.10.2010, 07:18
quelle
0

Verwendet QDateTime :: toString () keine erwarteten Ergebnisse?

>

Vielleicht könnten Sie versuchen, ein anderes Format mit QDateTime::toString(Qt::SystemLocaleLongDate) oder QDateTime::toString(Qt::SystemLocaleShortDate) zu verwenden.

Andernfalls würde ich QLocale :: dateTimeFormat () verwenden, um das lokale Format zu erhalten a QString und verwenden Sie dann diese Zeichenfolge als Formatparameter von QDateTime :: toString () , aber Ich denke nicht, dass es etwas ändern wird.

    
Jérôme 27.10.2010 06:31
quelle

Tags und Links