日期比较不起作用
我想通过减去然后将毫秒除以天来比较两个日期,但是这每次返回-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();
我仍然5478,但它不是负面的。我将假定我接收日期的方式有错,而不是语法。感谢您的帮助。 –
鉴于shmosel的最新评论,我认为你是对的 –
你认为世界上大多数人使用比美国更合乎逻辑的日期格式.... *咳嗽* dd/MM/yy? (不仅仅是紧张 - 这可能是你的格式问题) –
可能的重复[如何在Java中比较日期?](http://*.com/questions/2592501/how-to-compare-dates-in-java) – Rao
您的输入和预期输出是什么? – shmosel
*将毫秒分为几小时* - 您的意思是几天? – shmosel