我需要将字符串变量转换为QDateTime格式
我的代码看起来
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,然后必须转换为最终格式,上面的代码有什么错误吗?
任何帮助都将不胜感激。
谢谢哈利斯
发布于 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
QLocale locale(QLocale::English, QLocale::UnitedStates);
QDateTime dt = locale.toDateTime("Jun 18 2015", "MMM dd yyyy");然后,如果您还想要与地区相关的输出,请使用QLocale::toString。
https://stackoverflow.com/questions/30930085
复制相似问题