GUIにQDateEdit
があります。そこからQDate
をQString
に変換し、データベースに追加します。 QString
の日付は、2015年12月20日の形式でデータベースに保存されます。
ユーザーが日付を編集したい場合は、GUIのQDateEdit
フィールドに日付を再度表示する必要があります。したがって、データベースをフェッチし、日付(QString
形式)を元に戻し、QDate
に戻すために再度QDateEdit
に変換する必要があります。 GUIのフィールド。
ただし、次の方法を使用して、そのQString
形式(2015年12月20日など)をQDate
に変換することはできません。
QString date_string_on_db = "20/12/2015";
QDate Date;
Date.fromString(date_string_on_db,"dd/MM/YYYY");
Date
は常にinvalid
を返します。
私は何をすべきか ?
まず、フォーマット文字列はdd/MM/yyyy
である必要があります。 QDate
クラスのQtドキュメント は、yyyy
が4桁の年番号として認識されると述べています。
第二に、fromString
は新しいstatic
を返すQDate
関数です。現在、その関数の戻り値は破棄されます。ご想像のとおり、Date
変数には書き戻されません。したがって、完全に正しいコードは次のようになります。
QString date_string_on_db = "20/12/2015";
QDate Date = QDate::fromString(date_string_on_db,"dd/MM/yyyy");