2013-07-13 167 views
1

我有一部分代碼可以查找用戶以前保存的以毫秒爲單位的保存時間。當從內存中取出時間時,由於某些原因,時間增加1分鐘,轉換爲簡單日期格式。我無法弄清楚爲什麼會發生這種情況。以下是用於檢索的時間並將其轉換長時間轉換爲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(); 

感謝的代碼部分的代碼!

回答

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)); 
相關問題