2009-08-26 58 views
7

Làm cách nào để so sánh 2 trường hợp của XMLGregorianCalendar để tìm trường hợp nào lớn hơn? Một trong những biến ngày có giá trịXMLGregorian So sánh ngày tháng

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

và người kia,

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

Trả lời

12

Bạn có thể chuyển đổi chúng cả hai để GregorianCalendar và so sánh những người (CalendarComparable). Phương pháp ngữ nghĩa compareTo() của Lịch được định nghĩa một cách rõ ràng, và nên làm việc độc lập với múi giờ:

So sánh các giá trị thời gian (millisecond offsets từ Epoch) đại diện bởi hai đối tượng Lịch.

Vì vậy, cố gắng này:

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

Nếu result là tích cực, sau đó date1 là "sau" hơn date2

Phương pháp compare() trên XMLGregorianCalendar bản thân làm điều gì đó khá đặc biệt, và không giống rất hữu ích cho tôi.

+2

tại sao không sử dụng: date1.compare (date2) == DatatypeConstants.LESSER (ví dụ:)? –

+0

http://stackoverflow.com/questions/14978328/how-to-compare-xmlgregoriancalendar-with-only-the-date-portion-day-month-year đi sâu vào cách XMLGregorianCalendar thực hiện so sánh – user77115

+0

Sử dụng ngày1. so sánh (date2) không cho tôi kết quả logic, câu trả lời ở trên là đúng. –