关于java:如何比较Android应用中的日期?

How to compare dates in Android app?

本问题已经有最佳答案,请猛点这里访问。

在将此问题标记为副本之前,它不是。我知道这个问题,我试着用它的答案,到目前为止还没有用。

我有一个事件发生的日期,还有datetime.now()。如果日期是今天或昨天,我现在想显示"今天"或"昨天"。如果没有(在过去更进一步),日期应该简单地打印出来。为此,我想知道datetime.now()和事件发生的日期时间之间的天数差异。所以我试了一下:

1
2
3
4
5
6
7
8
DateTime actionDate = overviewevent.getActionDate();
Log.wtf(TAG, actionDate.toString()); // Prints 2013-09-06T08:47:04.000+01:00
LocalDate localActionDate = actionDate.toLocalDate();
LocalDate localNow = DateTime.now().toLocalDate();
// First try
Log.wtf(TAG, Integer.toString(localActionDate.compareTo(localNow)));
// Second try
Log.wtf(TAG, Integer.toString(DateTimeComparator.getDateOnlyInstance().compare(actionDate, DateTime.now())));

即使从now()到actionDate之间有10天,我尝试的两个方法都只是打印"1"。

有人知道我怎么能看到相隔几天的约会吗?


我想说它不是在打印1,而是在打印-1

compare函数只比较两个日期,不计算时间差。有关更多信息,请查看Joda时间文档。另外,我建议大家阅读更一般的Java接口EDOCX1,3,它是Java语言的基本单元。

到目前为止,我还没有用过Joda时间,但我在这里读到,解决你问题的办法可能是

1
Days.daysBetween(actionDate.toDateMidnight(), DateTime.now().toDateMidnight()).getDays()