2011-07-07 97 views
15

是否可以使用SharedPreferences存儲Date對象?如何在SharedPreferences中存儲Date對象?

其實在我的代碼中,我有一個String變量,booleanDate。這裏是我的功能,用於存儲除Date以外的所有對象。那麼如何做到這一點,請建議我?

private void SavePreferences() { 

    String key="1"; 
    String value="hello"; 

    int x=5; 

    Date currentDate=new Date(); 

    SharedPreferences sharedPreferences = getPreferences(MODE_APPEND); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString(key, value); 

    editor.putInt("2",5); 

    editor.commit(); 
} 

所以我的問題是如何使用SharedPreferences存儲Date

回答

26
editor.putLong("THE_DATE", currentDate.getTime()); 

存儲日期值你可以閱讀喜好Date這樣的:

long millis = sharedPreferences.getLong("THE_DATE", 0L); 
Date theDate = new Date(millis); 
+0

一旦我存儲data..and再次打開該應用程序..我有一個重置按鈕..一次,我點擊重置按鈕是否有可能刪除所有這些存儲的數據..我已經存儲使用shredPreferences。 – AndroidDev

+4

'editor.clear()。commit();' –

+0

簡單而好的答案。 –

1

您可以使用sharedpreferences像這樣

editor.putLong("date",currentDate.getTime()); 
1

Date爲格式化String,例如

//for putting 
Date myDate; 
final String FORMAT="yyyy-MM-dd"; 
String prefData=SimpleDateFormat(FORMAT).format(myDate); 
editor.putString("Date", prefDate); 

//for reading 
prefDate=settings.getString("Date", ""); 
Date date=new SimpleDateFormat(FORMAT).parse(prefDate); 

或者你可以把米利斯如龍

+0

確定它的罰款,但是當我嘗試存儲我的第二個日期它會覆蓋它存儲的第一個日期..所以,如何可以保持..所以每次我添加日期它將存儲新的日期沒有overidding前一個日期。 – AndroidDev

+0

使用不同的鍵存儲第二個數據,比如putString(「date1」,myDate1)和putString(「date2」,myDate2); – barmaley

3

設置日期時間

SharedPreferences sharedPreferences = getPreferences(MODE_APPEND); 
SharedPreferences.Editor editor = sharedPreferences.edit(); 
Date dt = getSomeDate(); 
editor.putLong(dateTimeKey, dt.getTime()); 

獲取日期時間

long myDate = sharedPreferences.getLong(dateTimeKey, new Date().getTime()); 
+0

你不能有一個名爲'long'的變量,它是一個關鍵字。 –

+0

哎呀抱歉,我已將其更改爲myDate,謝謝您的建議。 – Xorsat

+0

+1用於將默認值設置爲現在。 – rob5408