在此问题被标记为重复之前,它不是。我知道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”。
有人知道我怎么看日期分开多少天?
答案 0 :(得分:1)
我会说它不打印1
而是-1
。
compare
函数只是比较两个日期,它不计算时差。查看Joda Time documentation以获取更多信息。另外,我建议你阅读更通用的Java接口Comparator
,它是Java语言的基本单元。
到目前为止,我从未使用过Joda Time,但我读到了here,问题的解决方案可能是
Days.daysBetween(actionDate.toDateMidnight(), DateTime.now().toDateMidnight()).getDays()