Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将QString转换为特定格式的QDate?_C++_Qt_Qstring_Qdate - Fatal编程技术网

C++ 如何将QString转换为特定格式的QDate?

C++ 如何将QString转换为特定格式的QDate?,c++,qt,qstring,qdate,C++,Qt,Qstring,Qdate,我的GUI中有一个QDateEdit,从中我将QDate转换为QString,并将其添加到我的数据库中。QString日期以以下格式保存在数据库中:2015年12月20日 如果用户想要编辑日期,那么我需要再次在GUI上的QDateEdit字段上显示日期。因此,我需要获取数据库,带回日期(以QString格式),并再次将其转换为QDate,以便将其放在GUI上的QDateEdit字段中 但是,我无法通过以下方式将QString格式(即:2015年12月20日)转换为QDate: QString d

我的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");
日期
总是返回
无效


我该怎么办?

首先,格式字符串应该是
dd/MM/yyyy
。表示
yyyy
被识别为四位数的年份号

其次,
fromString
是一个
static
函数,它返回一个新的
QDate
。目前,该函数的返回值已被丢弃:它不会像您所想的那样写回
Date
变量。因此,完整正确的代码应如下所示:

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

尝试对格式字符串使用
dd/MM/yyyyy
。这是可行的,但请注意,像我这样的美国人尝试了复制和粘贴,但没有成功:对于美国日期,它应该是“MM/dd/yyyy”