-1

在此问题被标记为重复之前,它不是。我知道这个问题,并且我尝试使用它的答案,但到目前为止无济于事。

我有某个事件发生的日期,我有 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”。

有谁知道我怎样才能看到日期相隔多少天?

4

1 回答 1

1

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

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

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

Days.daysBetween(actionDate.toDateMidnight(), DateTime.now().toDateMidnight()).getDays()
于 2013-09-16T21:59:25.367 回答