Domanda

Ho problemi con un apparentemente molto semplice problema: voglio ottenere un QDateTime da una QString contenente un timestamp. Ho ottenuto il timestamp da PostgreSQL, ma non importa. Ecco il codice che non funziona:

QString timestamp = "2010-10-09 19:21:46+02:00";
QString format = "YYYY-MM-DD HH:MM:SSTZD";
QDateTime dt = QDateTime::fromString(timestamp, format);
qDebug() << dt.toString(); // outputs empty string

Ci deve essere qualcosa di molto ovvio che mi manca. Grazie!

È stato utile?

Soluzione

Ci sono stati due errori che stavo facendo. Non v'è alcun TZD nelle specifiche di formato, così ho rimosso le informazioni fuso orario dal momento che non ne ho bisogno nella mia app facendo:

timeStamp.chop(6);

E poi utilizzato il seguente formato per ottenere un QDateTime. Notare i caratteri di formato minuscolo:

QDateTime createdAt = QDateTime::fromString(timeStamp, "yyyy-MM-dd HH:mm:ss");

Grazie a tutti per l'aiuto di cui sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top