将 QString 日期(RFC 822 格式)转换为另一种基于区域性的 QString 格式



我有一个包含多个字符串的数据库,我从查询中获取此记录,并在 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)

最新更新