Je stocke l'heure actuelle dans la base de données chaque fois que l'application démarre par l'utilisateur.
Calendar c = Calendar.getInstance();
String str = c.getTime().toString();
Log.i("Current time", str);
Côté base de données, je stocke l'heure actuelle sous forme de chaîne (comme vous le voyez dans le code ci-dessus). Par conséquent, lorsque je le charge à partir de la base de données, je dois le convertir en objet Date. J'ai vu des échantillons que tous avaient utilisé "DateFormat". Mais mon format est exactement le même que le format Date. Donc, je pense qu'il n'est pas nécessaire d'utiliser "DateFormat". Ai-je raison?
Est-il possible de convertir directement cet objet String en date? Je veux comparer cette heure stockée avec l'heure actuelle.
Merci
======> mise à jour
Merci chers gars. J'ai utilisé le code suivant:
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()
jette une exceptionSimpleDateFormat dateFormat =new SimpleDateFormat(""yyyy-MM-dd'T'HH:mm:ss'Z'"", Locale.getDefault());
la source
en utilisant la classe SimpleDateFormat ou DateFormat via
par exemple
la source
Mer 14 mars 13:30:00 UTC 2018
14 mars 2018
la source
Il peut être judicieux de faire attention aux paramètres régionaux dont
c.getTime().toString();
dépend.Une idée est de stocker l'heure en secondes (par exemple l' heure UNIX ). En tant
int
que tel, vous pouvez facilement le comparer, puis le convertir en chaîne lors de son affichage à l'utilisateur.la source
la source