C++ Qt将时间和日期字符串转换为带时区的QDateTime

C++ Qt将时间和日期字符串转换为带时区的QDateTime,c++,qt,date,datetime,C++,Qt,Date,Datetime,我正在尝试将日期字符串转换为以下格式: Thu Sep 18 02:03:02 +0000 2008 到QDateTime,使用 QDateTime::FromString() 如果我删除+0000时区并使用输入格式: ddd MMM dd hh:mm:ss yyyy 但是,它是有效的,似乎没有时区支持,我无法找到一种使用通配符忽略时区部分的方法 有没有一种方法可以使用时区或忽略+0000部分?这有点极端,但您可以使用另一个日期/时间库()来将字符串重新格式化为QDateTime所需的格式

我正在尝试将日期字符串转换为以下格式:

Thu Sep 18 02:03:02 +0000 2008
到QDateTime,使用

QDateTime::FromString()
如果我删除+0000时区并使用输入格式:

ddd MMM dd hh:mm:ss yyyy
但是,它是有效的,似乎没有时区支持,我无法找到一种使用通配符忽略时区部分的方法


有没有一种方法可以使用时区或忽略+0000部分?

这有点极端,但您可以使用另一个日期/时间库()来将字符串重新格式化为QDateTime所需的格式

#include "tz.h"
#include <chrono>
#include <iostream>
#include <sstream>

int
main()
{
    using namespace date;
    std::string input = "Thu Sep 18 02:03:02 +0000 2008";
    std::istringstream stream{input};
    sys_seconds tp;
    parse(stream, "%a %b %d %T %z %Y", tp);
    std::string output = format("%a %b %d %T %Y", tp);
    std::cout << output << '\n';
}

使用此库,转换期间时间点将正确转换为UTC(使用UTC偏移量)。

是否有机会以其他格式接收日期
QDateTime::fromString(“Thu,2008年9月18日02:03:02+0000”,Qt::RFC2822Date)
例如可以工作。格式字符串似乎与时区没有任何关系:/
Thu Sep 18 02:03:02 2008