我如何以不同的语言从qdatetime获取日名
How can I obtain day name from QDatetime in a different language?
QDateTime date = QDateTime::currentDateTime();
QString week = QDate::shortDayName(date.date().dayOfWeek());
painter.drawText(-30, 20, 65, 40, Qt::AlignHCenter, week);
我在QT创建者中画一个时钟。我的QT版本是5.8.0。我系统的语言是中文的,因此本周以中文展示。是关于语言环境的吗?我该如何用英语展示一周?
是的,如果您需要基于另一个语言环境(而不是默认语言环境(生成字符串,则需要使用语言环境对象进行指定。尝试这样的事情:
QLocale locale(QLocale("en_US"));
QDateTime date = QDateTime::currentDateTime();
QString dateString = locale.toString(date);
如果您只需要一个全约日期的一部分(一周的一天或类似的东西(,则可以设置格式:
QString dateString = locale.toString(date, "dddd, d MMMM yyyy");
QLocale
对象可以使用接受 QDate
或 QDateTime
的 QLocale::toString()
方法格式化日期和时间。
演示:
#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")));
}
输出
美国英语:5/5/17是星期五
在简体:2017/5/5是
在suomi:5.5.2017是perjantaina
简短答案
您可以写
QString week = QLocale{QLocale::English}.toString(date, "dddd");
(尽管我不会称其为 week
-这使我期望一年中的一周号(。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法获取菜单选择以运行函数.C++
- 数组长度,为什么从命令行获取时不能使用它?
- Boost Spirit,获取迭代器内部语义动作
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 具有默认值的引用获取函数
- 我如何以不同的语言从qdatetime获取日名
- 如何获取Qt中两个QDatetime之间创建的所有文件的文件路径?