Java MPAndroid日期格式和解析丢失精度
我正在使用MPAndroid库来绘制我的android应用程序的图形。我有一个长值输入到条目中。我的问题是,当我格式化x轴的值时,它使用float值而不是long值,因此它会失去精度 以下是我的图形条目代码: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
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。