Как сравнить 2 экземпляра XMLGregorianCalendar, чтобы узнать, какой из них больше? Одна из дат переменных имеют значениеСравнение XMLGregorianCalendar
date1 = 2009-02-23T05:54:17+05:30
и другие,
date2 = 2009-02-23T05:54:17.000
Как сравнить 2 экземпляра XMLGregorianCalendar, чтобы узнать, какой из них больше? Одна из дат переменных имеют значениеСравнение XMLGregorianCalendar
date1 = 2009-02-23T05:54:17+05:30
и другие,
date2 = 2009-02-23T05:54:17.000
Вы можете преобразовать их обоих в GregorianCalendar
и сравнить их (Calendar
является Comparable
). Метод Семантика CompareTo() Календарь явно определен, и должен работать независимо от часового пояса:
Сравнивает значение времени (миллисекунды смещения от эпохи), представленные два объекта календаря.
Так попробуйте это:
XMLGregorianCalendar date1 = ...
XMLGregorianCalendar date2 = ...
int result = date1.toGregorianCalendar().compareTo(date2.toGregorianCalendar());
Если result
положительна, то date1
является «позже», чем date2
compare()
метод на XMLGregorianCalendar
сам делает что-то довольно своеобразное, и не выглядит очень полезно для меня.
Почему бы не использовать: date1.compare (date2) == DatatypeConstants.LESSER (например,?)? –
http://stackoverflow.com/questions/14978328/how-to-compare-xmlgregoriancalendar-with-only-the-date-portion-day-month-year подробно изучает, как XMLGregorianCalendar выполняет сравнение – user77115
Использование date1. compare (date2) не дал мне логических результатов, приведенный выше ответ правильный. –