使用Joda时间比较两个日期

2022-09-01 06:29:09

我想比较两个日期,但是我遇到了麻烦。1 个日期是从对象创建的,另一个日期是手动制作的。以下代码是一个示例:java.util.date

Date ds = new Date();
DateTime d = new DateTime(ds);

DateTime e = new DateTime(2012,12,07, 0, 0);
System.out.println(d.isEqual(e));

然而,测试结果却是.我猜这是因为时间。我如何检查这两个日期是否彼此相等(我的意思是年,月,日期是否相同)?false


答案 1
System.out.println(d.toDateMidnight().isEqual(e.toDateMidnight()));

System.out.println(d.withTimeAtStartOfDay().isEqual(e.withTimeAtStartOfDay()));

答案 2

你应该使用 toLocalDate()

date1.toLocalDate().isEqual(date2.toLocalDate())

这将摆脱日期时间的时间部分。

还有另一种方法,但它没有考虑两个日期具有不同时区的情况,因此不太可靠:

date1.withTimeAtStartOfDay().isEqual(date2.withTimeAtStartOfDay())