我怎么能用时间“HH:mm:ss MM-dd-yy”(如何导入和绘制)在JDBC中绘制csv

时间:2016-06-22 13:49:31

标签: java date csv jfreechart

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

文件阅读器:

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),我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

我不熟悉JFreeChart类以及这种情节究竟是如何工作的,但由于XYSeries #add方法似乎只接受double值作为第一个参数,因此您无法通过日期值。 因此,我不认为使用这种方法可以实现您的目标。

有可能"解释"时间戳通过将相应的String解析为Date对象并使用其getTime()方法。 但是要小心:getTime()返回一个long,而不是double值!

注意:要将String解析为Date对象,请分别引用DateFormat SimpleDateFormat及其解析(String s)方法。