Mar*_*sen 33 java time date jodatime
我想比较两个日期,但是我遇到了麻烦.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));
Run Code Online (Sandbox Code Playgroud)
然而,测试结果证明了false
.我猜这是因为时间.如何检查这两个日期是否相等(我的意思是年,月,日相同)?
JB *_*zet 50
System.out.println(d.toDateMidnight().isEqual(e.toDateMidnight()));
Run Code Online (Sandbox Code Playgroud)
要么
System.out.println(d.withTimeAtStartOfDay().isEqual(e.withTimeAtStartOfDay()));
Run Code Online (Sandbox Code Playgroud)
Sta*_*tan 21
你应该使用toLocalDate():
date1.toLocalDate().isEqual(date2.toLocalDate())
Run Code Online (Sandbox Code Playgroud)
这将摆脱DateTime的Time部分.
还有另一种方法,但它没有考虑两个日期具有不同时区的情况,因此它不太可靠:
date1.withTimeAtStartOfDay().isEqual(date2.withTimeAtStartOfDay())
Run Code Online (Sandbox Code Playgroud)
return DateTimeComparator.getDateOnlyInstance().compare(first, second);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
61000 次 |
最近记录: |