Java 如何检查日期是否在今天之后

Java 如何检查日期是否在今天之后,java,date,parsing,simpledateformat,Java,Date,Parsing,Simpledateformat,我正在检查用户输入的日期是否在今天之后。这是我的密码: SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date enteredDate = sdf.parse(date); Date currentDate = new Date(); if(enteredDate.after(currentDate)){ 日期是一个变量,用户日期的格式为“2016/04/26”。在进行一些调试之后,我发现enteredDate和curre

我正在检查用户输入的日期是否在今天之后。这是我的密码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date enteredDate = sdf.parse(date);
Date currentDate = new Date();
if(enteredDate.after(currentDate)){
日期是一个变量,用户日期的格式为“2016/04/26”。在进行一些调试之后,我发现enteredDate和currentDate为null。你知道为什么吗?
谢谢

java date类有before和after方法,您可以使用一个很好的例子

`import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.text.ParseException;
 public class App 
 {
     public static void main( String[] args ) 
     {
     try{

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2009-12-31");
        Date date2 = sdf.parse("2010-01-31");

        System.out.println(sdf.format(date1));
        System.out.println(sdf.format(date2));

        if(date1.compareTo(date2)>0){
            System.out.println("Date1 is after Date2");
        }else if(date1.compareTo(date2)<0){
            System.out.println("Date1 is before Date2");
        }else if(date1.compareTo(date2)==0){
            System.out.println("Date1 is equal to Date2");
        }else{
            System.out.println("How to get here?");
        }

    }catch(ParseException ex){
        ex.printStackTrace();
    }
}
}`
`import java.text.simpleDataFormat;
导入java.util.Date;
导入java.text.ParseException;
公共类应用程序
{
公共静态void main(字符串[]args)
{
试一试{
SimpleDataFormat sdf=新SimpleDataFormat(“yyyy-MM-dd”);
Date date1=sdf.parse(“2009-12-31”);
日期2=sdf.parse(“2010-01-31”);
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
如果(日期1.与(日期2)相比>0){
System.out.println(“日期1在日期2之后”);

}否则,如果注释中提到的(date1.compareTo(date2),则日期对象不可能具有null引用。但是,如果sdf.parse(Date)抛出一个被抑制的异常,则enteredDate可能为null

 String date="2016/04/26";
    Date enteredDate=null;
    try
    {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    enteredDate = sdf.parse(date);
    }catch (Exception ex)
    {
        // enteredDate will be null if date="287686";
    }
    Date currentDate = new Date();      
    if(enteredDate.after(currentDate)){
        System.out.println("after ");
    }else
        System.out.println("before");

currentDate不能为空。请创建一个。在
Date currentDate=new Date()
之后,变量
currentDate
在我的计算机上是
null
?(提示:不可能是…),日期为
“2016/04/26”
,工作正常。currentDate在此上下文中不可能为null。这里,如果enteredDate变量为null[即enteredDate.after(new Date())],代码将抛出NullPointerException。我向他解释了如何避免null引用,因为op没有在其调用sdf.parse(Date)的代码中指定日期值;
 String date="2016/04/26";
    Date enteredDate=null;
    try
    {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    enteredDate = sdf.parse(date);
    }catch (Exception ex)
    {
        // enteredDate will be null if date="287686";
    }
    Date currentDate = new Date();      
    if(enteredDate.after(currentDate)){
        System.out.println("after ");
    }else
        System.out.println("before");