Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MPAndroid日期格式和解析丢失精度_Java_Android_Mpandroidchart - Fatal编程技术网

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

Java MPAndroid日期格式和解析丢失精度,java,android,mpandroidchart,Java,Android,Mpandroidchart,我正在使用MPAndroid库来绘制我的android应用程序的图形。我有一个长值输入到条目中。我的问题是,当我格式化x轴的值时,它使用float值而不是long值,因此它会失去精度 以下是我的图形条目代码: String dateString = "02/13/2019(11:23:45)"; long readingDate = 0; try { SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy(kk:mm:ss)", L

我正在使用MPAndroid库来绘制我的android应用程序的图形。我有一个长值输入到条目中。我的问题是,当我格式化x轴的值时,它使用float值而不是long值,因此它会失去精度

以下是我的图形条目代码:

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值

基本上,您需要从
条目的每个新x值中减去start_timestamp,这样图表将从0值开始,而不是从timestamp开始

例如

让我们假设
start\u timestamp
变量保存数据点的第一个时间戳

要添加新条目,请使用:

SensorData.add(新条目(读取日期-开始时间戳,1.5);


要格式化x值,您只需将开始时间戳添加到提供的x值。

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

基本上,您需要从
条目的每个新x值中减去start_timestamp,这样图表将从0值开始,而不是从timestamp开始

例如

让我们假设
start\u timestamp
变量保存数据点的第一个时间戳

要添加新条目,请使用:

SensorData.add(新条目(读取日期-开始时间戳,1.5);


< >为了格式化X值,你只需添加StaskType戳以提供X值。

作为一个考虑,扔掉长期过时和臭名昭著的麻烦代码< SimpleDateFormat >代码>和朋友,并添加到Android项目中,以便使用<代码> java.时间>代码>,java java的日期和时间API。一边考虑抛弃长期过时的和臭名昭著的麻烦代码< SimpleDateFormat >代码>朋友,然后添加到Android项目中,以便使用<代码> java。时间<代码>,现代java日期和时间API。