2011-07-07 17 views
15

¿Es posible almacenar un objeto Date usando SharedPreferences?¿Cómo almacenar un objeto Date en SharedPreferences?

Actualmente en mi código tengo una variable String, boolean y Date. Aquí está mi función para almacenar todos los objetos excepto Date. Entonces, ¿cómo se puede hacer eso por favor sugiérame?

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(); 
} 

Así que mi pregunta es cómo almacenar la Date usando SharedPreferences?

Respuesta

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

Y se puede leer un Date de las preferencias de esta manera:

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

vez Almacené data..and nuevamente abrir la aplicación .. tengo un botón de reinicio ... una vez que hago clic en el botón de reinicio es posible eliminar todos estos datos almacenados ... que he almacenado usando shredPreferences. – AndroidDev

+4

'editor.clear(). Commit();' –

+0

Respuesta simple, excelente. –

1

puede almacenar el valor de fecha utilizando SharedPreferences como esta manera

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

Ponga Date como formato String, por ejemplo,

//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); 

O usted puede poner Millis, siempre y

+0

está bien, pero cuando intento almacenar mi segunda fecha, se reemplazará la primera fecha en que se almacena ... así que cómo se puede mantener ... así que cada vez que agregue fecha, se almacenará una nueva fecha sin rebasar la fecha anterior. – AndroidDev

+0

Almacena los segundos datos con una clave diferente, por ejemplo putString ("date1", myDate1) y putString ("date2", myDate2); – barmaley

3

Establecer fecha y hora

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

Get Fecha Hora

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

No puede tener una variable llamada 'long', es una palabra clave. –

+0

Vaya, lo he cambiado a myDate, gracias por su sugerencia. – Xorsat

+0

+1 para establecer el valor predeterminado para ahora. – rob5408

Cuestiones relacionadas