2010-02-15 14 views
10

Mam dane wejściowe zawierające czas UTC sformatowany zgodnie z iso8601. Próbie przetwarza go przy QDateTime:Jak wymusić QDateTime :: fromString na odczyt czasu UTC

const char* s = "2009-11-05T03:54:00"; 
    d.setTimeSpec(Qt::UTC); 
    d = QDateTime::fromString(s, Qt::ISODate); 
    Qt::TimeSpec ts = d.timeSpec(); 

gdy fragment ten kończy ts jest ustawiony Localtime i d zawiera 3 godzin i 54 minut. Czy ktoś wie, jak poprawnie odczytać datę?

Odpowiedz

11

A co z ustawianiem czasu spec po metodą fromString.

const char* s = "2009-11-05T03:54:00"; 
d = QDateTime::fromString(s, Qt::ISODate); 
d.setTimeSpec(Qt::UTC); 
Qt::TimeSpec ts = d.timeSpec(); 
+0

Dziękuję. Nie mogę tego objąć, ale działa! – danatel

+0

Kiedy po raz pierwszy zadeklarujesz 'd' używany jest domyślny konstruktor, kiedy piszesz' d = QDateTime :: fromString (s, Qt :: ISODate) '' aktualna wartość 'd' jest zamieniana przez zwracaną wartość' fromString '. Więc jeśli ustawisz czas spec przed wywołaniem 'fromString', zdefiniowana jest godzina dla domyślnej skonstruowanej wartości. – gregseth

Powiązane problemy