Tôi đang sử dụng biến jodatime DateTime
. Tôi muốn kiểm tra nếu DateTime 'x' là sau DateTime 'y'. Hàm isAfter chỉ chấp nhận tham số long
, không phải là DateTime
, mà tôi thấy rất kỳ quặc. Whats cách tốt nhất để so sánh hai số DateTime
là gì?Kiểm tra xem Ngày X có phải sau Ngày Y với JodaTime
Trả lời
Có phương thức boolean isAfter(ReadableInstant instant)
trong ReadableInstant, do đó, khi DateTime triển khai ReadableInstant, nó cũng nên chấp nhận DateTime.
public static void main(String[] args) {
System.err.println(new DateTime().isAfter(new DateTime().plusDays(1)));
}
công trình đối với tôi
Ngoài ra còn có một phương pháp getMillis()
thừa hưởng từ BaseDateTime
cung cấp cho bạn một giá trị long
đại diện cho ngày tháng, bạn có thể so sánh hai long
giá trị để xác định đó là trước đây, và bao nhiêu .
Như đã nêu, nếu bạn muốn biết sự khác biệt chính xác giữa hai đối tượng DateTime cho đầu ra bổ sung sau này trong mã. –
Phương pháp isAfter Mô tả
public boolean isAfter(ReadableInstant instant)
Is this instant after the instant passed in comparing solely by millisecond.
Specified by:
isAfter in interface ReadableInstant
Parameters:
instant - an instant to check against, null means now
Returns:
true if the instant is after the instant passed in
Phải mất ReadableInstant
như là đối số để DateTime
cũng có thể được thông qua như là rõ ràng từ DateTime Hierarchy
Class DateTime
java.lang.Object
extended by org.joda.time.base.AbstractInstant
extended by org.joda.time.base.AbstractDateTime
extended by org.joda.time.base.BaseDateTime
extended by org.joda.time.DateTime
All Implemented Interfaces:
Serializable, Comparable<ReadableInstant>, ReadableDateTime, ReadableInstant
chi tiết Trên đây là được lấy từ joda api docs
Khi [tài liệu] (http://joda-time.sourceforge.net/apidocs/org/joda/time/base/AbstractInstant.html#isAfter (org.joda.time.ReadableInstant)) nói "so sánh chỉ bằng mili giây , "chúng có nghĩa là gì" chỉ bằng mili giây "? Họ chỉ có nghĩa là múi giờ được bỏ qua, phải không? –
tôi thấy mà quá tải nhưng bỏ qua nó bởi vì tôi đã không kno w Tôi có thể vượt qua trong một 'DateTime' khi nó được mong đợi một' ReadableInstant'. Cảm ơn! –
@Teifi Nếu điều này trả lời câu hỏi của bạn, bạn nên cân nhắc việc chấp nhận. –
Câu trả lời ở trên là một trong những phương pháp tốt nhất để sử dụng –