我正在尝试转换GMT / UTC字符串,如下所示:
11 Sep 2014 14:31:50 GMT
到Qt(c ++)中的UNIX时间戳。
这是代码(注意我已从第一个字符串中删除了“GMT”):
QString l_time = "11 Sep 2014 14:31:50";
QDateTime l_dt = QDateTime::fromString(p_gmt_date, "dd MMM yyyy hh:mm:ss");
uint l_timestamp = l_dt.toTimeSpec(Qt::UTC).toTime_t();
这给了我结果:
l_timestamp = 1410438710
当然这是错误的,我认为这是由于“本地”设置(考虑我在意大利)。
验证this website我得到了正确的结果:
1410445910
在同一个网站上,我可以交叉检查第一个结果是错误的,因为它返回:
Thu, 11 Sep 2014 12:31:50 GMT
有人可以帮助我吗? 感谢。
答案 0 :(得分:0)
固定!
QString l_time = "11 Sep 2014 14:31:50";
QDateTime l_dt = QLocale(QLocale::Italian, QLocale::Italy).toDateTime(l_time, "dd MMM yyyy hh:mm:ss");
l_dt.setTimeSpec(Qt::UTC);
uint l_timestamp = l_dt.toTime_t();
这给了我正确的结果:
1410445910