将 QString 日期(RFC 822 格式)转换为另一种基于文化的 QString 格式
Convert QString date (RFC 822 format) to another QString format based on culture
我有一个包含多个字符串的数据库,我从查询中获取了这些记录,并且我在 QString 中收到了这种格式的数据:
"Mon, 13 Nov 2017 09:48:45 +0000"
所以,我需要根据文化来转换它,例如,如果我想转换成意大利文化?
所以结果将是:
"Lun, 13 Nov 2017 09:48:45"
qt 中存在这种类型的转换还是我必须手动进行?
感谢大家
Qt 提供了 QLocale
class 来处理 language/country 细节。它有接受 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()
根据底层 OS 中的当前用户设置构造一个实例。您还可以强制使用特定的 language/country,例如:QLocale(QLocale::Italian)
.
我有一个包含多个字符串的数据库,我从查询中获取了这些记录,并且我在 QString 中收到了这种格式的数据:
"Mon, 13 Nov 2017 09:48:45 +0000"
所以,我需要根据文化来转换它,例如,如果我想转换成意大利文化?
所以结果将是:
"Lun, 13 Nov 2017 09:48:45"
qt 中存在这种类型的转换还是我必须手动进行?
感谢大家
Qt 提供了 QLocale
class 来处理 language/country 细节。它有接受 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()
根据底层 OS 中的当前用户设置构造一个实例。您还可以强制使用特定的 language/country,例如:QLocale(QLocale::Italian)
.