我正在尝试从系统时钟获取当前日期并更改其格式(即更改为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",则必须使用setDisplayFormatQDateEdit函数。

QDate date = QDate::currentDate();
StartDateEdit->setDate(date);
StartDateEdit->setDisplayFormat("dd/MM/yyyy");

注意:fromString函数将字符串转换为QDate,指示字符串的格式。

10-07 19:29