Java,将历元转换为毫秒
我的flot图没有显示任何行,在Java中使用整数将历元乘以1000时出现问题?Java,将历元转换为毫秒,java,javascript,time,epoch,integer-overflow,Java,Javascript,Time,Epoch,Integer Overflow,我的flot图没有显示任何行,在Java中使用整数将历元乘以1000时出现问题? 这是我的原始数据,存储在.txt文件中 epoch,value 1383229104,55559 1383229121,55559 1383229787,55565 由Servlet解析并存储在以下文件中: Vector<Integer> points = new Vector<Integer>(); 有多个文件,每个文件都包含一个单独的系列(线)以绘制在图形上。 对于每个矢量点对象,它
这是我的原始数据,存储在
.txt
文件中
epoch,value
1383229104,55559
1383229121,55559
1383229787,55565
由Servlet解析并存储在以下文件中:
Vector<Integer> points = new Vector<Integer>();
有多个文件,每个文件都包含一个单独的系列(线)以绘制在图形上。对于每个
矢量点
对象,它们将添加到
Vector<Dataset> datasets = new Vector<Dataset>();
更新:--------------------------------------------------------------------------------------在javascript中调试输出。
有5个文件正在加载到
Vector datasets=new Vector()代码>
我可以使用以下方式访问值:
alert(datasets[0].points[0][0]);
alert(datasets[0].points[0][1]);
输出将是两个警报对话框,一个包含249634688
,第二个包含55559
注意:1383229104*1000
不应为249634688
您应该使用Long,而不是整数。显然这是一个溢出问题。更改私有向量点编码>到私有向量点代码>
导致预期结果,即1383229104000
您能否向我们展示console.log(数据集)
的输出?更新描述,使用console.log(数据集)
和alert(数据集)
的输出,您可以从问题中看到alert(数据集[0]。点[0])
output249634688
,因为历元被乘以1000并存储在一个Integer
对象中,该对象无法处理如此大的值。
public class Dataset {
private String name;
private Vector<Vector<Integer>> points;
var datasets = JSON.parse(xmlhttp.responseText);
var plotarea = $("#placeholder");
$.plot(plotarea, [datasets[0].points, datasets[1].points, datasets[2].points, datasets[3].points, datasets[4].points], {
xaxis: {
mode: "time",
min: (new Date(2012, 0, 1)).getTime(),
max: (new Date(2015, 0, 1)).getTime()
}
});
alert(datasets) .. [object Object],[object Object],[object Object],[object Object],[object Object]
console.log(datasets) .. [object Array]
alert(datasets[0].points[0][0]);
alert(datasets[0].points[0][1]);