import java.io.*;
public class testing {
public static void main(String a[]) throws Exception{
Date d1=new Date();
Thread.sleep(2000);
Date d2=new Date();
if(d1.equals(d2)){
System.out.println("Both equal");
}else{
System.out.println("Both not equal");
}
Calendar c1=Calendar.getInstance();
Calendar c2=Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
c1.clear(Calendar.HOUR);
c1.clear(Calendar.MINUTE);
c1.clear(Calendar.SECOND);
c2.clear(Calendar.HOUR);
c2.clear(Calendar.MINUTE);
c2.clear(Calendar.SECOND);
if(c2.compareTo(c1) == 0){
System.out.println("Cal Equal");
}else {
System.out.println("Cal Not Equal");
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我每次运行上述代码多次(如果条件为日期时打印)"两个不相等"打印但是(对于日历的条件)有时会打印"Cal Equal",有时"Cal Not Equal".有人可以解释一下为什么会这样吗?
我尝试这个的主要原因是因为我想比较两个日期.两者都具有相同的日,月和年,但是创建对象的时间不同.我希望它们相等(相同).我该怎么做?
Sea*_*oyd 23
日历也有毫秒.添加这个:
c1.clear(Calendar.MILLISECOND);
c2.clear(Calendar.MILLISECOND);
Run Code Online (Sandbox Code Playgroud)
但它更容易实现使用功能DateUtils.truncate()从Apache的共享/郎
c1 = DateUtils.truncate(c1, Calendar.DATE);
c2 = DateUtils.truncate(c2, Calendar.DATE);
Run Code Online (Sandbox Code Playgroud)
这将删除所有小时,分钟,秒和毫秒.
| 归档时间: |
|
| 查看次数: |
13788 次 |
| 最近记录: |