gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:13:46 26 4
gpt4 key购买 nike

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

Thu Sep 18 02:03:02 +0000 2008

到 QDateTime,使用

QDateTime::FromString()

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

ddd MMM dd hh:mm:ss yyyy

它有效,但是,似乎没有时区支持,我想不出一种使用通配符忽略时区部分的方法。

有没有办法使用时区或忽略 +0000 部分?

最佳答案

这有点极端,但您可以使用另一个日期/时间库 ( this one for example ) 只是为了将字符串重新格式化为 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';
}

哪些输出:

Thu Sep 18 02:03:02 2008

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

关于c++ - Qt 将时间和日期字符串转换为带时区的 QDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36760079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com