我的GUI中有一个QDateEdit
,我从中将QDate
转换为QString
并将其添加到数据库中。QString
日期以以下格式保存在数据库中:2015年12月20日。
如果用户想要编辑日期,那么我需要再次在GUI的QDateEdit
字段中显示日期。因此,我需要获取数据库,带回日期(采用QString
格式),并再次将其转换回QDate
,以便将其放在GUI的QDateEdit
字段中。
但是,我无法使用以下方法将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
被识别为四位数的年份号。
其次,fromString
是一个返回新的QDate
的static
函数。目前,该函数的返回值被丢弃:它不会像您可能认为的那样写回Date
变量中。因此,完整的正确代码应该如下所示:
QString date_string_on_db = "20/12/2015";
QDate Date = QDate::fromString(date_string_on_db,"dd/MM/yyyy");