2017-02-21 7 views
-2

In android, bekomme ich das falsche Datum beim Parsen. Ich stelle 22 Feb (Wednesday) zur Verfügung. Warum gibt es mir den falschen Wochentag (Sonntag)? Überprüfen Sie den Screenshot unten, um den vollständigen Code mit Werten zu sehen.datum parse geben falsche datum in android

SimpleDateFormat format = new SimpleDateFormat("dd MMM (EEEE)"); 
try { 
    Date date = format.parse(strDate); 
    Calendar c = Calendar.getInstance(); 
    c.setTime(date); 
    c.add(Calendar.DATE, 2); 
    String output = format.format(c.getTime()); 
    tvDeliveryDate.setText(output); 
    tvDeliveryTime.setText(time); 
    deliveryDateTime = output + "," + time; 
    db.putString("deliver_date",output); 
    db.putString("deliver_time",time); 
    db.putString("deliver_date_time",output + ", " + time); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

Screenshot Image

+0

Bitte teilen Sie, was schief geht? Jahr? Beschreiben –

+0

SimpleDateFormat format = new SimpleDateFormat ("dd MMM (EEEE) YYYY"); Versuchen Sie es mit dieser –

+0

oder Sie müssen Parameter strDate in Funktion mit dem Jahr –

Antwort

5

Ihr Datumsformat nicht über eine Jahreskomponente wird so 1970 angenommen. 1970 war der 22. Februar ein Sonntag.

Von der SimpleDateFormat.parse() Dokumentation:

Diese Parsing Operation verwendet den Kalender ein Date herzustellen. Alle Datums-/Uhrzeitfelder des Kalenders werden vor dem Analysieren gelöscht, und die Standardwerte des Kalenders für die Datums-/Uhrzeitfelder werden für fehlende Datums- und Zeitinformationen verwendet. Beispielsweise ist der Jahrwert des geparsten Date 1970 mit GregorianCalendar, wenn kein Jahrwert vom Parsingvorgang angegeben wird.