如何在SharedPreferences中存储Date对象?

时间:2011-07-07 12:04:35

标签: android sharedpreferences

是否可以使用Date存储SharedPreferences对象?

实际上,在我的代码中,我有一个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();
}

所以我的问题是如何使用Date存储SharedPreferences

4 个答案:

答案 0 :(得分:27)

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

你可以从这样的偏好中读出Date

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

答案 1 :(得分: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()); 

答案 2 :(得分:1)

您可以使用像这样的共享偏好来存储日期值

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

答案 3 :(得分: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);

或者你可以将millis视为Long