我有一个包含多个字符串的数据库,我从查询中获取此记录,并在 QString 中接收以下格式的数据:
"周一, 13 十一月 2017 09:48:45 +0000">
所以,我需要根据文化转换它,例如,如果我想在意大利文化中转换?
所以结果将是:
"伦,2017年11月13日 09:48:45">
qt中存在这种类型的转换,还是我必须手动进行?
感谢大家
Qt提供了QLocale
类来处理语言/国家/地区细节。它有超载的QLocale::toString()
接受QDateTime
。
它还具有执行反向操作的功能QLocale::toDateTime()
。但在您的情况下,非本地感知QDateTime::fromString()
应该有效。
最后你应该有这样的东西(+ 或 - 你想要的确切格式的一些参数(。
QString source = "Mon, 13 Nov 2017 09:48:45 +0000";
QDateTime dt = QDateTime::fromString(source, Qt::RFC2822Date);
QString result = QLocale().toString(dt, Qt::RFC2822Date);
请注意,QLocale()
根据底层操作系统中的当前用户设置构造实例。您还可以强制使用特定的语言/国家/地区,例如:QLocale(QLocale::Italian)
。