如何显示与系统不同的区域设置的QDate月



该函数QDate::toString(const QString &format)允许显示带有MMM(例如"Jan"到"Dec")或MMMM(例如"Jan"到"December")的月份名称。

但是此函数使用 QLocale::system() 中的系统区域设置(源代码)。

为特定 QLocale 显示带有月份名称的QDate的最简单方法是什么?

您必须使用toString() QLocale方法而不是QDate

QDate d =  QDate::currentDate();
QList<QLocale> locales {QLocale(QLocale::Spanish),
            QLocale(QLocale::English),
            QLocale(QLocale::Dutch),
            QLocale(QLocale::Japanese),
            QLocale(QLocale::French),
            QLocale(QLocale::Chinese)};
QString format = "dd MMMM yyyy";
for(const QLocale locale: locales){
    qDebug()<<locale.toString(d, format);
}

输出:

"16 octubre 2017"
"16 October 2017"
"16 oktober 2017"
"16 10月 2017"
"16 octobre 2017"
"16 十月 2017"

最新更新