首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QDateTime转换

QDateTime转换
EN

Stack Overflow用户
提问于 2015-06-19 04:48:54
回答 1查看 3.5K关注 0票数 1

我需要将字符串变量转换为QDateTime格式

我的代码看起来

代码语言:javascript
复制
QString date ="Thu Jun 18 2015";
QDateTime tmp = QDateTime::fromString(date,"ddd MMM dd yyyy HH:mm:ss");

但结果是Thu Jan 1 00:00:00 1970

稍后,我必须将这个日期转换为foramt yyyy-MM-dd HH:mm:ss,所以作为第一步,我已经将字符串转换为QDateTime,然后必须转换为最终格式,上面的代码有什么错误吗?

任何帮助都将不胜感激。

谢谢哈利斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-19 06:03:39

您的date字符串不包括时间,虽然您提到需要时间,但这至少在QT5.4中会失败。我不知道你为什么要输出epoche,也许这取决于你的Qt版本。

您的日期格式也是与区域设置相关的。例如,请参见"ddd"QDateTime::fromString中的加法

缩写的本地化日名(例如,“从”到“太阳”)。使用QDate::shortDayName()。

不幸的是,这一点还不是很清楚,而对于QDateTime::toString来说则更加清楚。

缩写的本地化日名(例如,“从”到“太阳”)。使用系统区域设置来本地化名称,即QLocale:: system ()。

例如,在我的地区(德国,奥地利),星期四的"ddd“导致了"Do.",这与"Thu"不同,因此不可能用这个语言环境来解析英语缩写。

要确保在读取或写入与区域设置相关的输出时使用正确的区域设置,请使用QLocale。在您的情况下,这将是QLocale::toDateTime

代码语言:javascript
复制
QLocale locale(QLocale::English, QLocale::UnitedStates);
QDateTime dt = locale.toDateTime("Jun 18 2015", "MMM dd yyyy");

然后,如果您还想要与地区相关的输出,请使用QLocale::toString

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30930085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档