java - DatecompareTo() 方法总是返回 -1

标签 java android

我有两个日期,我想比较它们。我已经记录了实际日期以确保其正确性。

Date photoDate = new Date(mPhotoObject.calendar.getTimeInMillis());

SimpleDateFormat dateFormat = new SimpleDateFormat("M.d.yy");


Log.v("photo date is", dateFormat.format(photoDate));
Date currentDate = new Date(Calendar.getInstance().getTimeInMillis());
Log.v("current date is", dateFormat.format(currentDate));
Log.v("date comparison", photoDate.compareTo(currentDate)+"");

if(photoDate.compareTo(currentDate)<0) {
     view.showFooButton(false);
  } else {
     view.showFooButton(true);
  }

出于某种原因,compareTo 方法始终返回 -1,即使此日期早于 Date 参数。

最佳答案

日期 包括精确到毫秒的时间。您需要使用不同的比较器或修剪时间信息:

final long millisPerDay= 24 * 60 * 60 * 1000;
...
Date photoDate = new Date((long)Math.floor(mPhotoObject.calendar.getTimeInMillis() / millisPerDay) * millisPerDay);
...
Date currentDate = new Date((long)Math.floor(Calendar.getInstance().getTimeInMillis() / millisPerDay) * millisPerDay);

关于java - DatecompareTo() 方法总是返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7084310/

相关文章:

java正则表达式找到一个字符串,将其添加到数组中,然后替换原来的字符串

java - 用于创建抽象类(而不是接口(interface))代理的 java.lang.reflect.Proxy 的替代品

android - 清理 ActionBarSherlock 创建 R cannot be resolved 错误

Android Proguard - 如何保持仅从 XML 布局引用的 onClick 处理程序

android - 在 Flutter 中将图像剪贴板

android - SmartFox 服务器无响应

android - 如何在android源代码的所有子目录中列出多个git中修改的文件?

java - 我的 gui 程序做错了什么?

java - 在 Websphere Application Server 8.5 上运行的 Web 应用程序中的字符编码

java - 在java中使用SevenZip.openArchive方法后无法删除文件