繁体   English   中英

从GMT / UTC字符串到UNIX时间戳的Qt5(C ++)转换

[英]Qt5 (C++) conversion from GMT/UTC string to UNIX timestamp

我正在尝试从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

当然这是错误的,我认为这是由于“本地”设置(考虑到我在意大利)。

此网站上验证,我得到正确的结果:

1410445910

在同一个网站上,我可以交叉检查第一个结果是否错误,因为它返回:

Thu, 11 Sep 2014 12:31:50 GMT

有人可以帮助我吗? 谢谢。

固定!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM