我的 Date 实例有问题。我做了以下事情:
Date startDate = new Date(); //this is from database value
Date todayDate = new Date(); //this is created locally
现在,当我尝试比较它们时,唯一的问题是 Date 实例将有时间,因此当我检查它们是否相等时,它可能不会给出与我期望的相同的结果,而是更少或更多。我测试了以下内容:
System.out.println(rsv.startDate);
System.out.println("Today date:"+todayDate);
if(rsv.startDate.equals(todayDate)){
System.out.println("Equal!");
}else if(rsv.startDate.after(todayDate)){
System.out.println("After!!");
}else{
System.out.println("Before!!!!");
}
虽然都是 2 月 5 日,但它显示的是 Before 的输出而不是 equal。我该如何补救?我知道 SimpleDateFormat 但这会将日期更改为字符串。
谢谢
最佳答案
对于日期操作,您可以使用 Joda 实用程序。以下代码片段显示比较两个日期:
DateTime one = new DateTime(original-Date-1);
DateTime two = new DateTime(original-Date-2);
LocalDate oneDate = one.toLocalDate();
LocalDate twoDate = two.toLocalDate();
return oneDate.compareTo(twoDate);
关于Java日期时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9148483/