2015-12-20 15 views
6

Ich habe eine QDateEdit in meiner GUI, von der ich die QDate zu QString konvertieren und es meiner Datenbank hinzufügen. Das Datum QString ist in der Datenbank in diesem Format gespeichert: 20/12/2015.Wie konvertiert man QString in QDate in einem bestimmten Format?

Falls ein Benutzer das Datum bearbeiten möchte, muss ich das Datum erneut auf dem Feld QDateEdit auf der GUI anzeigen. Daher muss ich die Datenbank holen, das Datum zurückbringen (das in QString Format ist) und es in QDate wieder zurück konvertieren, um es auf das Feld QDateEdit auf der GUI zu setzen.

Allerdings kann ich nicht, dass QString Format (d.h .: 20/12/2015) zu QDate mit dem folgenden konvertieren verwalten:

QString date_string_on_db = "20/12/2015"; 
QDate Date; 
Date.fromString(date_string_on_db,"dd/MM/YYYY"); 

Die Date immer invalid Rückkehr ist.

was soll ich tun?

+4

Verwenden Sie 'dd/MM/yyyy' für die Formatzeichenfolge. –

Antwort

9

Zunächst sollte die Formatzeichenfolge dd/MM/yyyy sein. Qt documentation for the QDate class sagt, dass yyyy als vierstellige Jahreszahl erkannt wird.

Zweitens ist fromString eine static Funktion, die eine neue QDate zurückgibt. Derzeit wird der Rückgabewert dieser Funktion verworfen: Sie wird nicht in die Variable Date zurückgeschrieben, wie Sie vielleicht denken. Der vollständige korrekte Code sollte daher wie folgt aussehen:

QString date_string_on_db = "20/12/2015"; 
QDate Date = QDate::fromString(date_string_on_db,"dd/MM/yyyy"); 
+0

Danke für die Antwort. Ich schätze Ihre Erklärung des QDate sehr. –

Verwandte Themen