代码之家  ›  专栏  ›  技术社区  ›  ymoreau

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

  •  1
  • ymoreau  · 技术社区  · 7 年前

    函数 QDate::toString(const QString &format) 允许使用显示月份名称 MMM (例如“一月”至“十二月”)或 MMMM (例如“一月”至“十二月”)。

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

    显示 QDate

    1 回复  |  直到 7 年前
        1
  •  5
  •   eyllanesc Yonghwan Shin    7 年前

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