gpt4 book ai didi

python - 如何将日期时间字符串转换为 UTC 以在 Highcharts 上绘制点

转载 作者:太空狗 更新时间:2023-10-30 00:36:17 28 4
gpt4 key购买 nike

我正在处理 HighCharts 样条不规则数据。这里的数据传递为

data: [
[Date.UTC(1970, 9, 27), 0 ],
[Date.UTC(1970, 10, 10), 0.6 ],
[Date.UTC(1970, 10, 18), 0.7 ],
[Date.UTC(1970, 11, 2), 0.8 ],
[Date.UTC(1970, 11, 9), 0.6 ],
[Date.UTC(1970, 11, 16), 0.6 ],
]

但是,我通过 AJAX 调用从 python 后端发送数据

data: [
"2013-11-07 00:10:27", 0 ],
"2013-11-07 00:10:27", 1 ],
"2013-11-07 00:10:27", 2 ],
"2013-11-07 00:10:27", 3 ],
"2013-11-07 00:10:27", 4 ],
"2013-11-07 00:10:27", 5 ],
]

因此,不会绘制数据点。我如何在后端 (python) 将日期时间转换为 UTC 或任何其他格式的日期时间,这将使 Highcharts 能够绘制正确的 X 轴和 Y 轴点。?

这是我试过的。由于 UTC 时间 Date.UTC(1970, 9, 27) 返回秒数,因此我在幕后将时间转换为自 1970-1-1 以来经过的总秒数.

time = "2013-11-06 18:00:00"
time = ((datetime.datetime.strptime(time, '%Y-%m-%d %H:%M:%S'))-datetime.datetime(1970,1,1)).total_seconds()

然后将它传递给 UI。因此我的数据发送为

[[1383760800.0, 1870.2000000000007], [1383762600.0, 0.30000000000000004], [1383761700.0, 4.299999999999802]]

现在,当我将此数据传递给 Highcharts 时,Y 轴显示正确的值,但 X 轴(需要在其上绘制日期时间)显示时间为 05:52。

我该如何纠正它?

这是我的 Highcharts 代码。

function comparison_chart(result) {
var MAXPOINTS = 20;

Highcharts.setOptions({
global: {
useUTC: false,
}
});

$('#container').highcharts({
chart: {
events: {
load: function() {

// set up the updating of the chart each second
var series = this.series[0];


setInterval(function() {
var x = (new Date()).getTime(), // current time
y = Math.random();
if(series.data.length > MAXPOINTS){
series.addPoint([x, y], true, true);
}
else{
series.addPoint([x, y], true, false);
}



},5000);
},
}

},
title: {
text: 'Energy Chart'
},
xAxis: {
type: 'datetime',
dateTimeLabelFormats: { // don't display the dummy year
month: '%e. %b',
year: '%b'
}
},

tooltip: {
formatter: function() {
var s;
s = this.y + 'kWh';
return s;
}
},

series: [{
type: 'spline',
name: 'Random data',
data: result,
showInLegend: true,

}]
});
}

最佳答案

问题是 HighCharts 期望时间序列数据以毫秒为单位,而不是秒,因此您需要输入 1000 的乘数。

您可以像这样从字符串转换为自纪元以来的毫秒数:

>>> int(datetime.datetime.strptime("2013-11-07 00:10:27", "%Y-%m-%d %H:%M:%S").strftime('%s')) * 1000
1383811827000

关于python - 如何将日期时间字符串转换为 UTC 以在 Highcharts 上绘制点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19828299/

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