MPAndroid 日期格式化和解析丢失精度

MPAndroid Date Formatting and Parsing Loses Precision

我正在为我的 android 应用程序的图形使用 MPAndroid 库。我在条目中输入了一个很长的值。我的问题是,当我格式化 x 轴的值时,它使用浮点值而不是长值,因此它会失去精度。

这是我的图表入口代码:

String dateString = "02/13/2019(11:23:45)";
long readingDate = 0;
try {
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy(kk:mm:ss)", Locale.US);
    Date date = sdf.parse(dateString);
    readingDate = date.getTime();
    } catch (ParseException e) {
         e.printStackTrace();
    }
SensorData.add(new Entry(readingDate, 1.5);

这是我格式化 x 轴的代码:

private class XAxisValueFormatter implements IAxisValueFormatter {

    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        String dateString = new SimpleDateFormat("MM/dd/yyyy(kk:mm:ss)", Locale.US).format(value);
        return dateString;
    }
}

我该如何解决这个问题?

可能的解决方案之一是让您的第一个点保持 0 值。

基本上,您需要从 Entry 的每个新 x 值中减去 start_timestamp,这样图表将从 0 值开始,而不是时间戳。

例如.

让我们假设 start_timestamp 变量保存您的第一个数据点时间戳。

要添加新条目,请使用:

SensorData.add(new Entry(readingDate - start_timestamp, 1.5);

要格式化 x 值,您只需将 start_timestamp 添加到提供的 x 值。