2009-08-26 8 views
7

Wie vergleiche ich 2 Instanzen von XMLGregorianCalendar, um herauszufinden, welcher größer ist? Eines der Datumsvariablen einen WertXMLGregorianCalendar Datumsvergleich

date1 = 2009-02-23T05:54:17+05:30 

und die andere,

date2 = 2009-02-23T05:54:17.000 

Antwort

12

Sie könnten sie beide zu GregorianCalendar konvertieren und diejenigen vergleichen (Calendar ist Comparable). Die Semantik compareTo() -Methode des Kalenders ist explizit definiert und sollte von der Zeitzone unabhängig arbeiten:

Vergleicht die Zeitwerte (Millisekunden Offsets von der Epoch) durch zwei Kalender-Objekte dargestellt.

Also versuchen Sie dies:

XMLGregorianCalendar date1 = ... 
XMLGregorianCalendar date2 = ... 
int result = date1.toGregorianCalendar().compareTo(date2.toGregorianCalendar()); 

Wenn result positiv ist, dann date1 "später" als date2

Die compare() Methode auf XMLGregorianCalendar selbst etwas tut, etwas eigentümlich, und sieht nicht aus sehr nützlich für mich.

+2

warum nicht verwenden: date1.compare (date2) == DatatypeConstants.LESSER (wie zB)? –

+0

http://stackoverflow.com/questions/14978328/how-to-compare-xmlgregoriancalendar-with-only-the-date-portion-day-month-year geht in die Tiefe, wie XMLGregorianCalendar den Vergleich – user77115

+0

Using date1 durchführt. vergleichen (date2) gab mir keine logischen Ergebnisse, die obige Antwort ist richtig. –

Verwandte Themen