Qt设置默认语言环境并打印longDayName

时间:2016-11-04 15:15:32

标签: qt locale

我需要将我的应用程序的默认语言环境设置为德语并打印第一个长名称'Montag',但我得到'星期一'

QLocale::setDefault(QLocale(QLocale::German, QLocale::Germany));
qDebug() << QDate::longDayName(QDate::currentDate().dayOfWeek());

1 个答案:

答案 0 :(得分:1)

来自QDate::longDayName()的{​​{3}}:

  

日期名称将根据系统的区域设置进行本地化,即使用docs

这不是您设置的默认语言环境。为了使用QLocale::system(),您需要构造一个没有参数的QLocale对象。之后,您可以调用default one来获取当天的本地化名称(根据您设置的默认语言环境):

QLocale::setDefault(QLocale(QLocale::German, QLocale::Germany));
qDebug() << QLocale().dayName(QDate::currentDate().dayOfWeek());

作为QLocale::dayName(),应始终使用QLocale进行与区域设置相关的转换。从Qt 6开始,QDate / QTime将使用C语言环境。