2009-08-26 10 views
7

¿Cómo comparo 2 instancias de XMLGregorianCalendar para encontrar cuál es mayor? Una de las variables de fecha tienen un valorXMLGregorianCuenta de fecha de calendario

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

y el otro,

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

Respuesta

12

se pueden convertir tanto a GregorianCalendar y compara los (Calendar es Comparable). El método semántica compareTo() de Calendario se define explícitamente, y debería funcionar independiente de la zona horaria:

compara los valores de tiempo (milisegundos compensaciones de la Época) representados por dos objetos de Calendario.

Así que trate esto:

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

Si result es positivo, entonces date1 es "más adelante" que date2

El método compare() en XMLGregorianCalendar sí hace algo bastante peculiar, y no se ve muy útil para mi

+2

¿por qué no utilizar: date1.compare (date2) == DatatypeConstants.LESSER (como por ejemplo)? –

+0

http://stackoverflow.com/questions/14978328/how-to-compare-xmlgregoriancalendar-with-only-the-date-portion-day-month-year entra en profundidad cómo XMLGregorianCalendar realiza la comparación – user77115

+0

Usando fecha1. compare (date2) no me daba resultados lógicos, la respuesta anterior es correcta. –

Cuestiones relacionadas