Seite 1 von 1

QDate::fromString Frage

Verfasst: 11. Februar 2010 10:24
von pfid
Hi,

ich möchte gerne das Datum aus einem Emailheader parsen. Beispiel:

10 Feb 2010 15:48:16

Auf den ersten Blick wäre cool:

Code: Alles auswählen

QDateTime::fromString(""d MMM yyyy hh:mm:ss")
Leider geht das nicht, da die Sprache auf meinem System Deuscht ist, das Datum aber auf englisch kommt. Gibts da ne einfache Möglichkeit, z.b. mit QLocale o.ä., oder muss ich das von Hand parsen?

Re: QDate::fromString Frage

Verfasst: 23. Oktober 2013 14:34
von KartoffelKiffer
Hallo,

ich habe zwar keine Lösung, jedoch selbiges Problem.
Da die Frage schon gestellt wurde, schließe ich mich mal an.

Ich muss ein Datum wie "Oct 22 09:40:13" mit QDateTime::fromString verarbeiten. Mein System ist auf deutsch eingestellt, die Locales allerdings auf "C" gesetzt.

Code: Alles auswählen

setLocale(QLocale::C);
QLocale::setDefault(QLocale::C);

// myStringDate = Oct 22 09:40:13
QDateTime d = QDateTime::fromString(myStringDate, "MMM dd HH:mm:ss");

qDebug() << date.toString("MMM dd HH:mm:ss");
qDebug sollte an der Stelle genau den String ausgeben, wie ich ihn mittels "myStringDate" übergeben hatte, ist jedoch leer.

Hat jemand eine Idee dazu?


Grüße
KK

Re: QDate::fromString Frage

Verfasst: 23. Oktober 2013 14:40
von KartoffelKiffer
Hallo,

wirklich blöd. Jetzt suche ich seit einer Stunde nach einer Lösung und finde sie fünf Minuten, nachdem ich ins Forum schreibe.

An der Stelle funktioniert fromString nicht, sondern folgende Lösung:

Code: Alles auswählen

QDateTime date   = QLocale(QLocale::C).toDateTime(myDateString, "MMM dd HH:mm:ss");// vorher: QDateTime::fromString(myDateString, "MMM dd HH:mm:ss");
QLocale::toDateTime() ist also der Schlüssel.