QDateTime date = QDateTime::currentDateTime();
QString week = QDate::shortDayName(date.date().dayOfWeek());
painter.drawText(-30, 20, 65, 40, Qt::AlignHCenter, week);
我正在Qt Creator中绘制时钟。我的Qt版本是5.8.0。我系统的语言是中文,所以星期以中文显示。关于语言环境吗?如何用英语显示一周?
最佳答案
QLocale
对象可以使用接受QLocale::toString()
或QDate
的QDateTime
方法格式化日期和时间。
演示:
#include <QDate>
#include <QDebug>
#include <QLocale>
int main()
{
const QDate date{ 2017, 5, 5 };
const QLocale locales[]{ QLocale::English, QLocale::Chinese, QLocale::Finnish };
for (auto const& l: locales)
qDebug() << qPrintable(QString("In %0: %1 is %2")
.arg(l.nativeLanguageName(),
l.toString(date, QLocale::ShortFormat),
l.toString(date, "dddd")));
}
输出量
简短答案
你可以写
QString week = QLocale{QLocale::English}.toString(date, "dddd");
(尽管我不会将其称为
week
-这使我期望一年内的星期数)。