我如何在 JDBC 中随时间 "HH:mm:ss MM-dd-yy" 绘制 csv(如何导入和绘制)

how can i Plot csv in JDBC with time "HH:mm:ss MM-dd-yy" (how to import and plot)

您好,目前我正在尝试从 CSV 中绘制数据,我有代码,但它无法采用 HH:mm:ss MM-dd-yy,我拥有的代码仅适用于浮点数而非时间戳。我需要绘制它,它是当前值与时间的关系,例如: “2016-05-15 00:00:00” “20” “2016-05-15 00:00:01” “22” 并且数据在我的本地驱动器中,代码如下:

文件reader:

public XYSeriesCollection createDataset() throws NumberFormatException,
        IOException {
    dataset = new XYSeriesCollection();
    try {
        reader = new CSVReader(new FileReader("/usr/csv_dump.csv"),'\t');
        // Read the header and chuck it away
        readNextLine = reader.readNext();

导入数据:

        // Set up series
        final XYSeries seriesX = new XYSeries("X");

        while ((readNextLine = reader.readNext()) != null) {
            // add values to dataset

            double Time = Double.valueOf(readNextLine[0]);
            double X = Long.valueOf(readNextLine[1]);
            seriesX.add(Time, X);

        }

        System.out.println(seriesX.getMaxX() + "; " + seriesX.getMaxY());

        dataset.addSeries(seriesX);
    } catch (FileNotFoundException e) {
        System.out.println("File not found!");
    }
    return dataset;
}

public JFreeChart createChart(XYDataset dataset)
        throws NumberFormatException, IOException {
    chart = ChartFactory.createXYLineChart("Acceleration vs Time", // chart
                                                                    // title
            "Time", // domain axis label
            "Acceleration", // range axis label
            dataset, // data
            PlotOrientation.VERTICAL, // the plot orientation
            true, // legend
            true, // tooltips
            false); // urls

    return chart;
}

如你所见,它只能读取双精度而不能读取时间,如果我想导入时间(HH:mm:ss MM-dd-yy),我该怎么办?

我不熟悉 JFreeChart 类 以及这种绘图的具体工作原理,但是由于 XYSeries#add 方法似乎只接受双精度值作为第一个参数,您将无法传递日期值。 因此,我认为使用这种方法无法实现您的目标。

可以通过将相应的字符串解析为 Date 对象并使用其 getTime() 方法来 "interpret" 时间戳。 但是 注意:getTime() returns 一个长值,而不是双精度值!

旁注:要将字符串解析为日期对象,请分别参考 DateFormat SimpleDateFormat 及其 parse(String s) 方法。