问题 如何强制QDateTime :: fromString读取UTC时间


我有一些输入包含根据iso8601格式化的UTC时间。我尝试使用QDateTime解析它:

  const char* s = "2009-11-05T03:54:00";
  d.setTimeSpec(Qt::UTC);
  d = QDateTime::fromString(s, Qt::ISODate);
  Qt::TimeSpec ts = d.timeSpec();

当这个片段结束时, ts 设置为localTime和 d 包含3小时54分钟。有谁知道如何正确阅读日期?


12188
2018-02-15 11:50


起源



答案:


怎么样设置时间规格  该 fromString 方法。

const char* s = "2009-11-05T03:54:00";
d = QDateTime::fromString(s, Qt::ISODate);
d.setTimeSpec(Qt::UTC);
Qt::TimeSpec ts = d.timeSpec();

13
2018-02-15 12:43



谢谢。我无法绕过这个但是它有效! - danatel
当你第一次申报时 d 在编写时使用默认构造函数 d = QDateTime::fromString(s, Qt::ISODate); 当前的价值 d 被返回值替换 fromString。因此,如果您在呼叫前设置时间规格 fromString 时间规范是为默认构造值定义的。 - gregseth


答案:


怎么样设置时间规格  该 fromString 方法。

const char* s = "2009-11-05T03:54:00";
d = QDateTime::fromString(s, Qt::ISODate);
d.setTimeSpec(Qt::UTC);
Qt::TimeSpec ts = d.timeSpec();

13
2018-02-15 12:43



谢谢。我无法绕过这个但是它有效! - danatel
当你第一次申报时 d 在编写时使用默认构造函数 d = QDateTime::fromString(s, Qt::ISODate); 当前的价值 d 被返回值替换 fromString。因此,如果您在呼叫前设置时间规格 fromString 时间规范是为默认构造值定义的。 - gregseth