2009-08-26 3 views
7

Как сравнить 2 экземпляра XMLGregorianCalendar, чтобы узнать, какой из них больше? Одна из дат переменных имеют значениеСравнение XMLGregorianCalendar

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

и другие,

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

ответ

12

Вы можете преобразовать их обоих в GregorianCalendar и сравнить их (Calendar является Comparable). Метод Семантика CompareTo() Календарь явно определен, и должен работать независимо от часового пояса:

Сравнивает значение времени (миллисекунды смещения от эпохи), представленные два объекта календаря.

Так попробуйте это:

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

Если result положительна, то date1 является «позже», чем date2

compare() метод на XMLGregorianCalendar сам делает что-то довольно своеобразное, и не выглядит очень полезно для меня.

+2

Почему бы не использовать: date1.compare (date2) == DatatypeConstants.LESSER (например,?)? –

+0

http://stackoverflow.com/questions/14978328/how-to-compare-xmlgregoriancalendar-with-only-the-date-portion-day-month-year подробно изучает, как XMLGregorianCalendar выполняет сравнение – user77115

+0

Использование date1. compare (date2) не дал мне логических результатов, приведенный выше ответ правильный. –

Смежные вопросы