2015-12-20 15 views
6

Ho una QDateEdit nella GUI da cui converto lo QDate in QString e lo aggiungo al mio database. La data QString viene salvata nel database in questo formato: 20/12/2015.Come convertire QString in QDate in un formato specifico?

Nel caso in cui un utente desideri modificare la data, è necessario mostrare nuovamente la data sul campo QDateEdit sulla GUI. Quindi, ho bisogno di recuperare il database, riportare la data (che è nel formato QString) e convertirlo nuovamente in QDate per inserirlo nel campo QDateEdit sulla GUI.

Tuttavia, non riesco a convertire il formato di QString (cioè .: 20/12/2015) per QDate utilizzando il seguente:

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

Il Date è sempre tornando invalid.

Cosa devo fare?

+4

Provare a utilizzare 'gg/MM/aaaa' per la stringa di formato. –

risposta

9

Prima di tutto, la stringa di formato deve essere dd/MM/yyyy. Qt documentation for the QDate class afferma che yyyy viene riconosciuto come un numero di anno a quattro cifre.

In secondo luogo, fromString è una funzione static che restituisce un nuovo QDate. Al momento, il valore di ritorno di tale funzione viene scartato: non viene riscritto nella variabile Date, come si potrebbe pensare. Il codice corretto completo dovrebbe quindi avere questo aspetto:

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

Grazie per la risposta. Apprezzo molto la tua spiegazione del QDate. –

Problemi correlati