2016-10-14 3 views
0

Ich bin neu in Java und Android. Ich habe den folgenden Code von verschiedenen Tutorials auf DatePickerDialog (hauptsächlich der offizielle) genommen. Jetzt möchte ich das ausgewählte Datum in einem bestimmten Format ("EE, DD.MM.YY") und versucht, dies mit SimpleDateFormat zu tun, aber ich verstehe nicht, wo das ausgewählte Datum abholen, da ich "nur" habe Jahr, Monat und Tag als Argumente:Ändern DateFormat von DatePickerDialog mit SimpleDateFormat in Android

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { 

    public Date date; 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current time as the default values for the picker 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 
     date = c.getTime(); 

     // Create a new instance of DatePickerDialog and return it 
     return new DatePickerDialog(getActivity(), this, year, month, day); 

    } 

    public void onDateSet(DatePicker view, int year, int month, int day) { 

     TextView textView = (TextView) getActivity().findViewById(R.id.textView_Date); 

     String selectedDate = String.valueOf(day) + "." + String.valueOf(month) + "." + String.valueOf(year); 
     textView.setText(selectedDate); 
    } 

} 

Also versuchte ich die Linie wie

String selecteDate = ... 

in etwas

SimpleDateFormat simpledateformat = new SimpleDateFormat("EE, DD.MM.YY"); 
String selectedDate = simpledateformat.format(date); 

zu ändern, aber da „Datum“ nicht das ist, ausgewählt eins aber das aktuelle und weil das Ergebnis von simpledateformat.format wahrscheinlich kein String ist, funktioniert es nicht. Kann mir jemand sagen, wie es funktioniert? Es muss aber nicht SimpleDateFormat sein, das ist genau so, wie ich dachte, dass es funktionieren könnte. Danke vielmals!

Antwort

1

Try this:

SimpleDateFormat simpledateformat = new SimpleDateFormat("EE, dd.MM.yy"); 
Calendar newDate = Calendar.getInstance(); 
newDate.set(year, month, day); 
String selectedDate = simpledateformat.format(newDate.getTime()); 
+0

Es funktioniert! Das Erstellen einer neuen Instanz des Kalenderobjekts kam mir einfach nicht in den Sinn. Danke Chris! Übrigens musste ich die Vorlage in "EE, dd.MM.yy" ändern, aus irgendeinem Grund akzeptierte sie keine Kapital-Ys. – wurstfacher

+0

Das stimmt. Weitere Informationen zu den möglichen Formaten finden Sie hier: https://developer.android.com/reference/java/text/SimpleDateFormat.html – Chris

+0

Ja, ich tat das vorher, danke, aber ich verstehe den Unterschied zwischen Y nicht und y, sieht für mich gleich aus. – wurstfacher

Verwandte Themen