如何显示与系统不同区域设置的 QDate-month?

How to display a QDate-month with a different locale than system?

函数QDate::toString(const QString &format)允许显示带有MMM(例如'Jan'到'Dec')或MMMM(例如'January' 到 'December').

但此函数使用来自 QLocale::system() (source code) 的系统语言环境。

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

您必须使用 QLocaletoString() 方法,而不是 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"