使用Date类将给定日期的字符串与当前日期进行比较时,获取Null对象引用异常

时间:2019-02-15 11:08:20

标签: java android date simpledateformat date-comparison

如果两个日期相等,我想在这里检查两个日期,那么计时器应该不运行,所以要检查我是否在这里取了两个字符串,一个是我提供的给定日期,另一个是我使用的日期该类将获取当前日期。我尝试比较两个日期:

custom:

如果两个日期相等,我在这里比较两个日期,那么计时器应该不运行。但是在比较时,我在这里得到空对象引用异常

 Date date1 = new Date();//Fetch currentdate
        String dtStart = "2019-02-20";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date = format.parse(dtStart);
        } catch (ParseException e) {
            e.printStackTrace();
        }

4 个答案:

答案 0 :(得分:1)

int compareToNow(String date){
    try {
        Date date1 = Calendar.getInstance().getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date d1= format.parse(format.format(date1));
        Date d2=format.parse(date);
        return d1.compareTo(d2);
    } catch (ParseException e) {
        e.printStackTrace();
        return 0;
    }
}

d1 = d2返回“ 0”

d1> d2返回“ 1”

d1 <d2返回“ -1”

答案 1 :(得分:0)

在Java中,Date具有after和before方法,可用于比较两个给定的日期。如下图所示:

if(!date.after(date1) && !date1.before(date)) {
      //if it comes here, it means dates are equal.
}

答案 2 :(得分:0)

尝试一下:

 var x =new  Date("March 21, 2012"); //date to be compared
 var y =new  Date; //current date
 console.log(x==y) //evolves false
 console.log(x!=y)  //evolves true

答案 3 :(得分:0)

您可以在Date类的方法之前和之后使用

if(!yourfirstDate.after(yourSecondDate) && !yourSecondDate.before(yourfirstDate)) {
  //if it comes here, you can code here
}