Ich habe eine SQLite-Datenbank in Android, wo das Datum eines bestimmten Ereignisses als String
gespeichert wird. Ich habe die Date
von einem DatePickerDialog
.SimpleDateFormat Zeichenfolge an Wochentag
Meine Termine werden in einer ListView
angezeigt und dafür möchte ich sie nach Datum bestellen und bekomme den Wochentag von jedem String
.
Ich weiß, ich muss meine String
in SimpleDateFormat
umwandeln und dann den Tag bekommen und Event vergleichbar machen. Aber alles, was ich bekomme, ist ein ParseException
.
Das ist die String
ich in meine Datenbank einfügen:
private void handleDateDialog() {
setDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(CreateEvent.this,android.R.style.Theme_Holo_Light_Dialog_MinWidth,dateSetListener,year,month,day);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.show();
}
});
dateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
month += 1;
String input = day + "-" + month + "-" + year;
dateSelected.setText(input);
}
};
}
Das ist, was ich von Stack-Überlauf bekam durch das Lesen anderer Fragen:
public String getDayOfWeek(){
String eventDate = this.getDate();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
try {
Date myDate = dateFormat.parse(eventDate);
} catch (ParseException e) {
e.printStackTrace();
}
dateFormat.applyPattern("EE");
String dayofweek = dateFormat.format(date);
return dayofweek;
}
Und das ist, wie ich versuche, den neuen zu bekommen String
dayOfWeek in mein ListView
:
try {
holder.day_of_week.setText(individualEvent.getDayOfWeek());
} catch (Exception e) {
e.printStackTrace();
}
Aber ich diesen Fehler immer erhalten in Android Monitor:
java.lang.IllegalArgumentException:
Also nicht gegeben Objekt als Datumsformat kann, ich nehme an, ich etwas falsch in meiner Datenbank gemacht haben.
Als mein Datum zeigen String
es zeigt, wie folgt aus: 28-10-2017
Ich weiß nicht, warum dies nicht formatierbare ist.
Interessiert zu sehen, was 'String eventDate = this .getDate(); 'Dies gibt zurück. Ich meine, welches Format speichern Sie in der Datenbank? Sie haben in Ihrer Dialogauswahl "28.10.2017" und "28-10-2017" erwähnt. Welches ist es? Debuggen und herausfinden. – Vucko
Die Nachricht * "Kann ein gegebenes Objekt nicht als Datum formatieren" * passiert normalerweise, weil die 'SimpleDateFormat # format' Methode einen' java.util.Date' als Parameter benötigt und Sie wahrscheinlich einen anderen Typ übergeben. In 'dateFormat.format (Datum)', wo ist diese 'Datum'-Variable definiert? Sie sollten stattdessen "myDate" übergeben. –
Oh yeah Ich habe einen Tippfehler in der Frage gemacht. Natürlich gibt es das Datum wie folgt zurück: 28-10-2017 – stoesselleon