Java 日期比较不起作用

Java 日期比较不起作用,java,android,comparison,android-date,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 {

我试图通过减法比较两个日期,然后将毫秒除以天,但每次都返回-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.");
    }

}

我认为,如果您将日期与过去的日期(例如,许可证上剩余的时间)进行比较,很可能会得到负值,因为这是反向的:

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();

您的输入和预期输出可能重复?将毫秒划分为小时-您是指天吗?@shmosel yes,编辑以反映这一点。请发一个。我仍然得到5478,但不是负数。我将假设我接收日期的方式有问题,而不是语法。谢谢你的帮助。你认为世界上大多数人使用比美国更具逻辑性的日期格式吗?咳嗽日/月/年?(不仅仅是为了时尚——可能是你的格式问题)我刚刚检查了我的代码,遗憾的是没有。看起来我在将日期插入SQLite数据库时搞砸了。