首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将"10:10“转换为纪元格式

如何将"10:10“转换为纪元格式
EN

Stack Overflow用户
提问于 2020-06-03 02:23:43
回答 1查看 43关注 0票数 0

我正在解析一个.json,并使用qt自定义绘图绘制它,但是对于x轴,我需要将"10:10“转换为secSinceEpoch,有谁知道最简单的方法吗?我也有ISODate格式的日期(2020-05-26),所以我需要基本上做“日期: 2020-05-26”+“分钟: 10:10”来获得该点的正确x轴值,对吗?我只是纠结于如何得到“10点10分”的时间。

出于某种原因,当我在翻译2020-05-26后的第二年输出时,它显示为1950,你知道为什么会这样吗?

以下是我当前的代码

代码语言:javascript
运行
复制
            time.push_back(chartData[i]["date"].asString());
            minute.push_back(chartData[i]["minute"].asString());
            timeInEpoch.push_back(QDateTime::fromString(time[i].c_str(), Qt::ISODate).toSecsSinceEpoch() + QDateTime::fromString(minute[i].c_str(), "hh:mm").toSecsSinceEpoch());

编辑:完整代码

代码语言:javascript
运行
复制
    //Retrieves json format of data
    Json::Value chartData = IEX::stocks::chartRange(symbolSearchedStd, "5dm");

    //Stores x and y values
    QVector<double> value, timeInEpoch;
    QVector<string>time, minute;
    setupLineChart("yyyy, MMM d", 8);

    int  n = chartData.size();

    //Finds max and min for range
    float maxAvg = chartData[0]["average"].asDouble();
    float minAvg = chartData[0]["average"].asDouble();

    //Reads in data from json(historical data 1 day delayed)
    for(int i = 0 ; i < n; i++)
    {
            value.push_back(chartData[i]["average"].asDouble());
            time.push_back(chartData[i]["date"].asString());
            minute.push_back(chartData[i]["minute"].asString());
            timeInEpoch.push_back(QDateTime::fromString(time[i].c_str(), Qt::ISODate).toSecsSinceEpoch() + QDateTime::fromString(minute[i].c_str(), "hh:mm").toSecsSinceEpoch());


            if((value[i] == 0) && (i != n - 1))
            {
                value[i] = value[i-1];
            }

            if(value[i] > maxAvg)
            {
                maxAvg = value[i];
            }

            else if(value[i] < minAvg)
            {
                minAvg = value[i];
            }
    }

    stockData(value[n-1], value[n-2]);

    //Assigns data to graph
    ui->stockGraph->graph(0)->setData(timeInEpoch, value);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-03 03:00:02

我认为您可以分别解析日期和时间:

代码语言:javascript
运行
复制
const char * date = "2020-05-26";
const char * time = "10:10";

auto d = QDate::fromString(date, Qt::ISODate);
auto t = QTime::fromString(time, "hh:mm");

auto dt = QDateTime(d, t);

qDebug() << "d = " << d << " t = " << t << " dt = " << dt << " secs = " << dt.toSecsSinceEpoch();

//d =  QDate("2020-05-26")  t =  QTime("10:10:00.000")  dt =  QDateTime(2020-05-26 10:10:00.000 +07 Qt::LocalTime)  secs =  1590462600
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62158815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档