我正在尝试从系统时钟获取当前日期并更改其格式(即更改为dd/MM/yyyy
这种格式)。之后,我需要使用setDate()
设置QDateEdit。我的问题是,将fromString()
与QDate::currentDate()
一起使用会返回无效的日期。这是关于此问题的代码
QDate date = QDate::currentDate().fromString("dd/MM/yyyy");
qDebug() << date.toString(); // <-- returns empty string
StartDateEdit->setDate(date); // <-- adding invalid date shows 1-1-2000
我的系统时钟在Windows 10中具有
M/d/yyyy
格式。有什么建议吗? 最佳答案
QDate::currentDate()
是一个静态函数,它返回当前日期,该对象存储日期,而不是格式。如果要显示以下形式:"dd/MM/yyyy"
,则必须使用setDisplayFormat
的QDateEdit
函数。
QDate date = QDate::currentDate();
StartDateEdit->setDate(date);
StartDateEdit->setDisplayFormat("dd/MM/yyyy");
注意:
fromString
函数将字符串转换为QDate,指示字符串的格式。