Vergleichen Sie Kalender und java.util.Termin Termine
Hallo, ich bin die Schaffung Instanz der Kalender Mit:
Calendar calendarDate=Calendar.getInstance();
calendarDate.set(2012, 6, 1,0,0,0);
Date date1=calendar.getTime();
Danach habe ich erstellen Sie eine Instanz von java.util.Datum:
Date date2=new Date(2012 - 1900,7-1, 01);
Wenn ich jetzt versuche zu vergleichen, die Daten mit dem folgenden code:
System.out.println(date2.compareTo(date1));
System.out.println(date1.compareTo(date2));
er druckt -1 und 1 anstelle von 0(null).
Kann einer mir helfen das zu finden, was schief geht ?
- es gibt kein javascript, hier, das entfernen der Tags.
- Haben Sie ausgedruckt die zwei Werte selbst?
- Sie sind unterschiedliche Daten... (2012-06-01-und 2012-07-01)
- Nein, Sie sind nicht zwei unterschiedliche Datumsangaben repräsentieren 2012-07-01.
- ja ich druckte diesen Wert
- Das bedeutet, dass Sie mehr Informationen haben, die Sie gar nicht in die Frage...
- sorry, ich vergaß hinzuzufügen : Date Datum1=calendar.getTime(); im ersten code-block.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, den Wert zu löschen, der Kalender, bevor Sie eine neue setzen. Dies wird Ihr problem lösen.
Test für ihn:
Datum und Kalender-Klassen sind unterschiedlich. Die meisten Methoden, die von java.util.Datum veraltet sind. Daher ist es besser, verwenden Sie die Kalender Klasse. Für weitere Informationen über die Methoden check out die url unten.
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#compareTo(java.lang.Objekt)
compareTo
Gibt:
den Wert 0, wenn das argument ein Date gleich diesem Datum; ein Wert kleiner als 0, wenn das argument ein Datum nach diesem Zeitpunkt; und ein Wert größer als 0, wenn das argument ein Datum vor diesem Datum.
wo ist date1 erstellt? Sie scheinen anzunehmen Kalender und Datum beziehen. Sie sind es nicht.
Termine sind GMT, außer wenn mit dem deprecated-Konstruktoren. Gibt es einen Unterschied hier, weil Sie müssen auch den milli-Sekunden auf 0 als gut.
Drucke
Hinweis: wird der Kalender verlassen jedes Feld, das Sie nicht setzen so den ersten Satz() aus der Millisekunden unberührt.
Date
Konstruktor verwendet die lokale Zeit-zone, schrecklich genug. Während es stimmt, dassDate
selbst ist immer "in Millisekunden, die seit dem UTC Unix-Epoche" geht es durch die gleichen Standard-Zeitzone, wenn mit dem deprecated-Konstruktoren.