我正在解析一个.json,并使用qt自定义绘图绘制它,但是对于x轴,我需要将"10:10“转换为secSinceEpoch,有谁知道最简单的方法吗?我也有ISODate格式的日期(2020-05-26),所以我需要基本上做“日期: 2020-05-26”+“分钟: 10:10”来获得该点的正确x轴值,对吗?我只是纠结于如何得到“10点10分”的时间。
出于某种原因,当我在翻译2020-05-26后的第二年输出时,它显示为1950,你知道为什么会这样吗?
以下是我当前的代码
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());
编辑:完整代码
//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);
发布于 2020-06-03 03:00:02
我认为您可以分别解析日期和时间:
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
https://stackoverflow.com/questions/62158815
复制相似问题