我有一个包含多个字符串的数据库,我从查询中获取此记录,并且我在QString中收到此格式数据:
“星期一,2017年11月13日09:48:45 +0000”
所以,我需要根据文化转换这个,例如,如果我想在意大利文化中进行转换?
结果将是:
“Lun,2017年11月13日09:48:45”
这种类型的转换存在于qt中还是我必须手动进行?
感谢所有
答案 0 :(得分:1)
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)
。