首页 > 解决方案 > 将 String 转换为 Epoch 一遍又一遍地返回常量值

问题描述

我正在使用 json cpp 来解析 json 并尝试绘制数据。在我的 x 轴上,我想要小时和分钟,但是当我将它们从字符串“09:30”转换为纪元时间时,它给了我一个常数 21600?我cout<<time[i] // the string time和我得到了正确的回报,即 09:30 - 4:00,但是当我去转换它时

time[i] = chartData[i]["minute"].asString();
QString temp = QString::fromStdString(time[i]);
epoch[i] = QDateTime::fromString(temp, Qt::ISODate).toSecsSinceEpoch();
cout << epoch[i] << endl;  //Should cout epoch value

我只是得到价值

21600
21600
21600
21600
21600
21600
21600

你们都知道这可能是什么吗,我相信它应该是 Qt::ISODate 格式,因为它的 hh:mm:ss 但我可能是错的。

编辑: json 是这样调用的:

    Json::Value chartData = IEX::stocks::intraday(symbolSearchedStd);
    QVector<double> value(390), epoch(390);
    QVector<string> time(390);

json的输出是:

"average" : 32.656999999999996,
        "close" : 33.845999999999997,
        "date" : "2020-05-21",
        "high" : 33.912999999999997,
        "label" : "12:06 PM",
        "low" : 33.289999999999999,
        "minute" : "12:06",
        "notional" : 26202.150000000001,
        "numberOfTrades" : 8,
        "open" : 33.020000000000003,
        "volume" : 810

编辑2:

主程序

    Json::Value chartData = IEX::stocks::intraday(symbolSearchedStd);
    QVector<double> value(390), epoch(390);
    QVector<string> time(390);

    //Reads in data from json(historical data 1 day delayed)
    for(Json::Value::ArrayIndex i = 0 ; i != chartData.size(); i++)
    {

        value[i] = (chartData[i]["average"].asDouble());

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

        time[i] = chartData[i]["minute"].asString();
        QString temp = QString::fromStdString(time[i]);
        epoch[i] = QDateTime::fromString(temp, Qt::ISODate).toSecsSinceEpoch();
        cout << epoch[i] << endl;


    }

Iex 类

Json::Value IEX::stocks::intraday(const string &symbol)
{
    Json::Value jsonData;

    if(!isValidSymbol(symbol)){
        cout << "Invalid Symbol! I am returning an uninitialized JSON object!";
        return jsonData;
    }

    string url(IEX_ENDPOINT);
    url+="/stock/"+symbol+"/intraday-prices?token=" + API_TOKEN;
    IEX::sendGetRequest(jsonData, url);
    assert(jsonData.isArray()); //Crash if not an array
    return jsonData;
}

标签: c++qt

解决方案


推荐阅读