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

时间:2017-10-16 13:36:28

标签: c++ qt qt5 qdate qlocale

功能QDate::toString(const QString &format)允许使用MMM显示月份名称(例如' Jan'至' Dec')或MMMM(例如' 1月'到12月')。

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

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

1 个答案:

答案 0 :(得分:4)

您必须使用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"