2009-08-26 22 views
7

Comment puis-je comparer 2 instances de XMLGregorianCalendar pour trouver celle qui est la plus grande? L'une des variables de date ont une valeurXMLGregorianCalendar comparaison de date

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

et l'autre,

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

Répondre

12

Vous pouvez les convertir à la fois pour GregorianCalendar et comparer les (Calendar est Comparable). La sémantique méthode du calendrier compareTo() est explicitement défini et doit fonctionner indépendamment du fuseau horaire:

compare les valeurs de temps (milliseconde décalages de l'époque) représentés par deux objets du calendrier.

Donc, essayez ceci:

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

Si result est positif, alors date1 est "plus tard" que date2

La méthode compare() sur XMLGregorianCalendar lui-même fait quelque chose assez particulière, et ne regarde pas très utile pour moi.

+2

pourquoi ne pas utiliser: date1.compare (date2) == DatatypeConstants.LESSER (comme par exemple)? –

+0

http://stackoverflow.com/questions/14978328/comment-compare-xmlgregoriancalendar-with-only-the-date-portion-day-month-year approfondit comment XMLGregorianCalendar effectue la comparaison – user77115

+0

en utilisant date1. comparer (date2) ne me donnait pas de résultats logiques, la réponse ci-dessus est juste. –