-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関数は 2 つの日付を比較するだけで、時差は計算しません。詳細については、Joda Time のドキュメントを確認してください。Comparatorまた、 Java 言語の基本単位である、より一般的な Java インターフェースについて読むことをお勧めします。

これまで Joda Time を使用したことはありませんが、ここで、問題の解決策が

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