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