Android, Comment puis-je convertir la chaîne à la date?

Je stocke l’heure actuelle dans la firebase database chaque fois que l’application démarre par utilisateur.

Calendar c = Calendar.getInstance(); Ssortingng str = c.getTime().toSsortingng(); Log.i("Current time", str); 

Du côté de la firebase database, 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 firebase database, je dois le convertir en object Date. J’ai vu des échantillons que tous avaient utilisés “DateFormat”. Mais mon format est exactement le même que le format de date. Donc, je pense qu’il n’y a pas besoin d’utiliser “DateFormat”. Ai-je raison?

Y at-il de toute façon pour lancer directement cet object Ssortingng to 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(Ssortingng date){ boolean isExpired=false; Date expiredDate = ssortingngToDate(date, "EEE MMM d HH:mm:ss zz yyyy"); if (new Date().after(expiredDate)) isExpired=true; return isExpired; } private Date ssortingngToDate(Ssortingng aDate,Ssortingng aFormat) { if(aDate==null) return null; ParsePosition pos = new ParsePosition(0); SimpleDateFormat simpledateformat = new SimpleDateFormat(aFormat); Date ssortingngDate = simpledateformat.parse(aDate, pos); return ssortingngDate; } 

De la chaîne à la date

 Ssortingng dtStart = "2010-10-15T09:27:37Z"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); try { Date date = format.parse(dtStart); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); } 

De la date à la chaîne

 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); try { Date date = new Date(); Ssortingng dateTime = dateFormat.format(date); System.out.println("Current Date Time : " + dateTime); } catch (ParseException e) { e.printStackTrace(); } 
 SimpleDateFormat dateFormat = new SimpleDateFormat("DD-MM-YYYY"); Date d = dateFormat.parse(datessortingng) 

en utilisant SimpleDateFormat ou la classe DateFormat via

par exemple

 try{ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); // here set the pattern as you date in ssortingng was containing like date/month/year Date d = sdf.parse("20/12/2011"); }catch(ParseException ex){ // handle parsing exception if date ssortingng was different from the pattern applying into the SimpleDateFormat contructor } 

Ce pourrait être une bonne idée d’être prudent avec les c.getTime().toSsortingng(); régionaux sur lesquels c.getTime().toSsortingng(); dépend.

Une idée est de stocker le temps en secondes (par exemple l’ heure UNIX ). En tant int vous pouvez facilement le comparer, puis vous le convertissez simplement en chaîne lorsque vous l’affichez.

 Ssortingng source = "24/10/17"; Ssortingng[] sourceSplit= source.split("/"); int anno= Integer.parseInt(sourceSplit[2]); int mese= Integer.parseInt(sourceSplit[1]); int giorno= Integer.parseInt(sourceSplit[0]); GregorianCalendar calendar = new GregorianCalendar(); calendar.set(anno,mese-1,giorno); Date data1= calendar.getTime(); SimpleDateFormat myFormat = new SimpleDateFormat("20yy-MM-dd"); Ssortingng dayFormatted= myFormat.format(data1); System.out.println("data formattata,-->"+dayFormatted); 
  import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class MyClass { public static void main(Ssortingng args[]) { SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); Ssortingng dateInSsortingng = "Wed Mar 14 15:30:00 EET 2018"; SimpleDateFormat formatterOut = new SimpleDateFormat("dd MMM yyyy"); try { Date date = formatter.parse(dateInSsortingng); System.out.println(date); System.out.println(formatterOut.format(date)); } catch (ParseException e) { e.printStackTrace(); } } } 

voici la date de votre object Date et le résultat est:

Mer. Mars 14 13:30:00 UTC 2018

14 mars 2018