Datums-Werte vergleichen

Status
Nicht offen für weitere Antworten.

xsthuber

Mitglied
Hallo,

ich hoffe, mir kann jemand bei folgendem Problem weiterhelfen:

Ich moechte zwei Datums-Werte (java.util.Date) vergleichen und benutze dazu die beiden Methoden after(Date when) und before(Date when).

Der Hintergrund dazu ist, dass der User meiner Applikation die Moeglichkeit hat, ein Startdatum und/oder ein Endedatum auszuwaehlen, wodurch entsprechende Datensaetze einer DB-Tabelle angezeigt werden.

Leider benutzen die oben aufgefuehrten Methoden nicht nur das eigentliche Datum (also z.B. 2004-08-12) sondern zusaetzlich die Stunden, Minuten, Sekunden... fuer die Datumsberechnung. :cry:

Daher meine Frage: wie stelle ich es am besten an, das nur das eigentliche Datum verglichen wird (d.h. die Stunden, Minuten... egal sind)?

CU

- Jack
 
Such hier mal im Forum da gibts zu dem Thema genug, ansonsten machs mal so:

stecke beides in je einen GregorianCalendar und vergleiche die beiden, das geht ohne Probleme.
 
du nimmst Deprecated Methoden 😉

Code:
Date compareDate1 = null,compareDate2 = null;
//date1 und date2 sind die orig.

compareDate1 = new Date(date1.getYear(),date1.getMonth(),date1.getDate(),0,0,0);
compareDate2 = new Date(date2.getYear(),date2.getMonth(),date2.getDate(),0,0,0);
//musst schauen mit dem Jahr, vielleicht noch +1970
//compareDates vergleichen!

oder du formatierst es um mit simpledateformat oder sonstiges!
aber so müsste/sollte es auch funktionieren!
 
thE_29 hat gesagt.:
du nimmst Deprecated Methoden 😉

Code:
Date compareDate1 = null,compareDate2 = null;
//date1 und date2 sind die orig.

compareDate1 = new Date(date1.getYear(),date1.getMonth(),date1.getDate(),0,0,0);
compareDate2 = new Date(date2.getYear(),date2.getMonth(),date2.getDate(),0,0,0);
//musst schauen mit dem Jahr, vielleicht noch +1970
//compareDates vergleichen!

oder du formatierst es um mit simpledateformat oder sonstiges!
aber so müsste/sollte es auch funktionieren!

Also bei mir geht das so nicht, IBM Websphere läßt das nicht kompilieren.
 
Danke fuer die schnellen Antworten.

Was haltet ihr von der Idee, die jeweiligen Datums-Objekte temporaer (also fuer die Dauer des Vergleichs) mit der Methode Calendar.clear(int field) fuer die entsprechenden Felder zu ueberschreiben:

Code:
Date datum = new Date();
Calendar test = Calendar.getInstance();
test.setTime(datum);
test.clear(Calendar.HOUR);
test.clear(Calendar.HOUR_OF_DAY);
test.clear(Calendar.MINUTE);
test.clear(Calendar.SECOND);
test.clear(Calendar.MILLISECOND);
datum = test.getTime();

- Jack
 
thE_29 hat gesagt.:
hast du java.sql.Date?

dann gehts glaub ich net, ich spreche von java.util.Date

Geht schon, er muss nur die Utildates bearbeiten und dann so in ein SQL Date umbauen:

Das wir hier in einem Vector reingeschoben, habs aus einem Programm rausgenommen, darüber brauchst du dir keine Gedanken machen.

Code:
	retvec.add(new java.sql.Date(utildate.getTime()));
					retvec.add(new java.sql.Date(utildate1.getTime()));
 
java.util.Calendar implementiert seit Java 5 (Version 1.5) das Interface Comparable und dessen Methode
Code:
int compareTo(Calendar calendar)
mit welcher sich Datumswerte vergleichen lassen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben