【问题标题】:How to force QDateTime::fromString to read UTC time如何强制 QDateTime::fromString 读取 UTC 时间
【发布时间】:2011-01-16 23:08:50
【问题描述】:

我有一些包含根据 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 分钟。有谁知道如何正确读取日期?

【问题讨论】:

    标签: c++ qt utc qdatetime


    【解决方案1】:

    fromString 方法之后设置时间规范怎么样。

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

    【讨论】:

    • 当你第一次声明d时使用默认构造函数,当你写d = QDateTime::fromString(s, Qt::ISODate);d的当前值被fromString的返回值替换。因此,如果您在调用fromString 之前设置时间规范,则时间规范是为默认构造值定义的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多