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 值。
我正在为我的 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 值。