如何比较Android应用中的日期?

时间:2013-09-16 21:42:42

标签: java android date datetime jodatime

在此问题被标记为重复之前,它不是。我知道this question,我试图用它的答案,到目前为止无济于事。

我有一个事件发生的日期,我有DateTime.now()。如果日期是今天或昨天的日期,我现在想要显示“今天”或“昨天”字样。如果不是(过去更进一步),应该简单地打印日期。为此我想知道DateTime.now()和事件发生的DateTime之间的天数差异。所以我尝试了这个:

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 个答案:

答案 0 :(得分:1)

我会说它不打印1而是-1

compare函数只是比较两个日期,它不计算时差。查看Joda Time documentation以获取更多信息。另外,我建议你阅读更通用的Java接口Comparator,它是Java语言的基本单元。

到目前为止,我从未使用过Joda Time,但我读到了here,问题的解决方案可能是

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