c++ - 将 QString 日期(RFC 822 格式)转换为另一种基于文化的 QString 格式

标签 c++ qt date datetime date-conversion

我有一个包含多个字符串的数据库,我从查询中获取了这些记录,并且我在 QString 中收到了这种格式的数据:

"Mon, 13 Nov 2017 09:48:45 +0000"

所以,我需要根据文化来转换它,例如,如果我想转换成意大利文化?

所以结果会是:

"Lun, 13 Nov 2017 09:48:45"

在 qt 中存在这种类型的转换还是我必须手动进行?

感谢大家

最佳答案

Qt 提供了 QLocale处理语言/国家/地区细节的类。它具有接受 QDateTimeQLocale::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/

相关文章:

c++ - 为什么 C++ 范围 "transform -> filter"为匹配过滤器谓词的值调用转换两次?

c++ - 从 Opencv 捕获网络摄像头视频

c++ - 正则表达式在 QRegEx 中给出了错误的匹配

c++ - Qt Creator 尝试拆分 QString 时出错

mysql - MySQL表中累计到差分数据

javascript - 在 Javascript 中以星期一开始和星期日结束获取一周的开始和结束

C++ scanf %la 返回 0

c++ - std::common_type 在 VC10 编译器下有 bug 吗?

c++ - 是代码块 10.05。与 QtWorkbench 兼容?

python - Pandas 按名称和最近日期合并