Almaceno la hora actual en la base de datos cada vez que la aplicación comienza por el usuario.
Calendar c = Calendar.getInstance();
String str = c.getTime().toString();
Log.i("Current time", str);
En el lado de la base de datos, almaceno la hora actual como una cadena (como puede ver en el código anterior). Por lo tanto, cuando lo cargo de la base de datos, necesito enviarlo al objeto Date. Vi algunas muestras de que todas habían usado "DateFormat". Pero mi formato es exactamente igual al formato de fecha. Entonces, creo que no hay necesidad de usar "DateFormat". Estoy en lo cierto?
¿Hay alguna forma de emitir directamente este objeto String to Date? Quiero comparar este tiempo almacenado con el tiempo actual.
Gracias
======> actualizar
Gracias queridos chicos. Usé el siguiente código:
private boolean isPackageExpired(String date){
boolean isExpired=false;
Date expiredDate = stringToDate(date, "EEE MMM d HH:mm:ss zz yyyy");
if (new Date().after(expiredDate)) isExpired=true;
return isExpired;
}
private Date stringToDate(String aDate,String aFormat) {
if(aDate==null) return null;
ParsePosition pos = new ParsePosition(0);
SimpleDateFormat simpledateformat = new SimpleDateFormat(aFormat);
Date stringDate = simpledateformat.parse(aDate, pos);
return stringDate;
}
SimpleDateFormat.format()
arroje una excepciónSimpleDateFormat dateFormat =new SimpleDateFormat(""yyyy-MM-dd'T'HH:mm:ss'Z'"", Locale.getDefault());
fuente
usando la clase SimpleDateFormat o DateFormat a través de
por ej.
fuente
Mié 14 mar 13:30:00 UTC 2018
14 mar 2018
fuente
Podría ser una buena idea tener cuidado con la configuración regional de la que
c.getTime().toString();
depende.Una idea es almacenar el tiempo en segundos (p. Ej. tiempo UNIX ). Como
int
puede compararlo fácilmente, y luego simplemente convertirlo en cadena cuando se lo muestra al usuario.fuente
fuente