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

15

我的GUI中有一个QDateEdit,我从中将QDate转换为QString并将其添加到我的数据库。 QString日期以这种格式保存在数据库中:20/12/2015。

如果用户想编辑日期,则需要再次在GUI上的QDateEdit字段中显示日期。因此,我需要获取数据库,取回日期(以QString格式),并将其重新转换为QDate,以便将其放置在GUI上的QDateEdit字段中。

然而,我无法使用以下方法将QString格式(即:20/12/2015)转换为QDate

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

Date一直返回invalid

我应该怎么做?


4
请尝试使用 dd/MM/yyyy 作为格式字符串。 - Daniel Kamil Kozar
1个回答

28
首先,格式化字符串应该是dd/MM/yyyy。Qt QDate类的文档指出,yyyy会被识别为四位数的年份。
其次,fromString是一个返回新的QDatestatic函数。目前,该函数的返回值被丢弃了:它没有被写回到Date变量中,正如你可能认为的那样。因此,完整正确的代码应该像这样:
QString date_string_on_db = "20/12/2015";
QDate Date = QDate::fromString(date_string_on_db,"dd/MM/yyyy");

2
这个方法可行,但是需要注意像我一样尝试复制粘贴却失败的美国人:日期格式应该为"MM/dd/yyyy"。 - Matt Binford

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接