我必须在if / else,当前日期和预定义日期(比如说2011年1月1日)中比较两个日期。这应该是简单的,但我找不到设置预定义日期的方法:
Java.util.Date date = new Date("2011-01-01");
如何比较两个日期?我真的不知道为什么这么复杂。
答案 0 :(得分:13)
尝试:
import java.text.SimpleDateFormat;
import java.util.Date;
...
Date today = new Date();
Date predefined = new SimpleDateFormat("yyyy-MM-dd").parse("2011-01-01");
if(today.equals(predefined)) {
...
}
答案 1 :(得分:7)
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, 2011);
cal.set(Calendar.MONTH, 1);
cal.set(Calendar.DATE, 1);
Date predefined = cal.getTime();
Date now = new Date();
if (now.after(predefined))
{
// do something
}
else
{
// do something else
}
或使用JodaTime。
如何比较两个日期?我真的不知道为什么这么复杂。
因为日历/日期/时间确实难以理解,Date
的Java实现(以及部分Calendar
)是完全的火车残骸。
答案 2 :(得分:3)
date.CompareTo(someOtherDate);
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#compareTo(java.util.Date)