如何从字符串构造日期

san*_*one 6 java datetime android date

我必须在if/else,当前日期和预定义日期(比如说2011年1月1日)中比较两个日期.这应该很简单,但我找不到设置预定义日期的方法:

Java.util.Date date = new Date("2011-01-01");
Run Code Online (Sandbox Code Playgroud)

如何比较两个日期?我真的不知道为什么这么复杂.

Rob*_*ska 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)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*all 7

使用java.util.Calendar.

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
}
Run Code Online (Sandbox Code Playgroud)

或者使用JodaTime.

如何比较两个日期?我真的不知道为什么这么复杂.

因为日历/日期/时间真的很难做到,而且Date(并且,部分Calendar)的Java实现是彻底的火车残骸.