Функция QDate::toString(const QString &format)
позволяет отображать название месяца с MMM
(например, с января по декабрь) или MMMM
(например, с «января» по «декабрь»).
Но эта функция использует системную локаль из QLocale::system()
(исходный код).
Какой самый простой способ отобразить QDate
с названием месяца, для конкретного QLocale?
Вы должны использовать 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"
Других решений пока нет …