我有一部分代码可以找到以前用户保存的以毫秒为单位的保存时间。当从内存中取出时间然后由于某种原因转换为简单日期格式时间增加1分钟。我无法弄清楚为什么会发生这种情况。以下是检索时间并将其转换的代码
time = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getFloat(String.valueOf(id)+"TIME", 0);
String dateString = new SimpleDateFormat("hh:mm a").format(new Date((long) time));
mPickedTimeText.setText(dateString);
以及保存时间的代码部分
this.time = time.getTimeInMillis();
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
Editor editor=prefs.edit();
editor.putFloat(String.valueOf(id)+"TIME", time);
editor.commit();
finish();
提前致谢!
答案 0 :(得分:3)
float
数据类型没有足够的精度来表示一分钟精度的时间。将时间存储为long
。
editor.putLong(String.valueOf(id)+"TIME", time);
time = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).getLong(String.valueOf(id)+"TIME", 0);
String dateString = new SimpleDateFormat("hh:mm a").format(new Date(time));