日期比较不起作用

时间:2017-03-03 02:46:41

标签: java android comparison android-date

我试图通过减去然后将毫秒除以天来比较两个日期,但每次返回-5479。我的语法有问题吗?我不知道为什么会这样。

if (task_date_view != null) {
    Date current_date = new Date();
    String myFormat = "MM/dd/yy";
    DateFormat dateFormat = new SimpleDateFormat(myFormat);
    Date temp_date;
    try {
        temp_date = dateFormat.parse(list_task.getDate());
        long difference = temp_date.getTime() - current_date.getTime();
        long diffDays = difference / (24 * 60 * 60 * 1000);
        String date_string = Long.toString(diffDays);
        task_date_view.setText(date_string + " days left.");

    } catch (ParseException e) {
        task_date_view.setText("No days left.");
    }

}

1 个答案:

答案 0 :(得分:2)

我认为,如果您与过去的某个日期进行比较(例如许可证上的剩余时间),我很可能会因为这是倒退而感到否定:

temp_date.getTime() - current_date.getTime()

如何在天中获得好处:

long end = endDate.getTime();
long start = startDate.getTime();
int daysDiff = TimeUnit.MILLISECONDS.toDays(Math.abs(end - start));

如果您想要从现在开始的日期差异,请使用:

long start = System.currentTimeInMillis();