我有一个包含多个字符串的数据库,我从查询中获取了这些记录,并且我在 QString 中收到了这种格式的数据:
"Mon, 13 Nov 2017 09:48:45 +0000"
所以,我需要根据文化来转换它,例如,如果我想转换成意大利文化?
所以结果会是:
"Lun, 13 Nov 2017 09:48:45"
在 qt 中存在这种类型的转换还是我必须手动进行?
感谢大家
最佳答案
Qt 提供了 QLocale
处理语言/国家/地区细节的类。它具有接受 QDateTime
的 QLocale::toString()
重载。
它还有一个函数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)
。
关于c++ - 将 QString 日期(RFC 822 格式)转换为另一种基于文化的 QString 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47266545/