2

2 つの GWT 日付ピッカーと Java 日付オブジェクトを使用しています。現在の日付 (now() 関数から) が、日付ピッカーで選択された日付の間にあるかどうかを確認したいと思います。2 つの質問があります。

  1. 2 番目の日付ピッカーで選択された日付が、最初の日付ピッカーで選択された日付と少なくとも同じかそれ以降であることを確認するにはどうすればよいですか?

  2. 両方の日付ピッカーで同じ日付を設定し、それに対して現在の日付を確認したいと考えています。2 番目の日付の時刻を 11:59:59 PM に設定してこれを実行しようとしましたが、Date.setHours および setMinutes メソッドは非推奨であると表示されます。

何か案は?どんな助けにも感謝します。

ps カレンダーやその他の日付機能を使用するように言わないでください。私の制約は、java.util.Date を使用する必要があるということです。

4

2 に答える 2

6

IDE がそれについて何と言っているかにかかわらず、古いjava.util.Date方法を使用することはそれほど悪くありません。通常の Java コードでは、はい、Calendar代わりにクラスを使用しますが、歴史的な理由から、これらの「非推奨」メソッドを使用しないことについてよく考えてください。

むかしむかし、Java は最もクールな子供でした。Web ブラウザーにはそのような言語はありませんでした。したがって、JavaScript が与えられました。これは、Java よりも Lisp に似た言語ですが、気にしないでください。

Date オブジェクトなど、いくつかの API が借用されました。その後、Java はそれよりも日付、時刻、およびタイムゾーンをより適切に処理できると判断し、 などの関数を非推奨setHoursにし、今日私たちが知っていて愛用している Calendar や JodaTime などの明るい (そして紛らわしい) 未来に移行しました。

しかし、ブラウザーには JavaScript があり、独自の方法を見つけ、それらの方法を使い続けていました。日付の処理に役立つ JavaScript ライブラリがありますが、ブラウザーのランタイム内では、Date オブジェクトは依然として古いjava.util.Date.

したがって、GWT では好きな場所に Java を記述しますが、常に Web ブラウザーを使用していることを忘れないでください。基礎となる言語には、非推奨のメソッドを使用するネイティブ機能がたまたまあるだけで、どこにも行きません。同様に、Object.wait()notify()は合法ですが、それらを使用することも、finalize()呼び出されることもありません。これらは、Java を使用してライブラリまたはアプリケーションを整理および維持し、Web で実行するためにコンパイルする場合に留意する必要があることです。 JavaScript を使用するブラウザ。

于 2012-12-15T22:09:51.123 に答える
4

日付を比較するには、単に使用します

date2.getTime() >= date1.getTime();

日付を直接比較することはできないことに注意してください。Java では可能ですが、JavaScript には問題があります。

同じ日付を設定するには、1 つの日付ピッカーから日付を取得し、別の日付に設定します。

また、GWT には機能が制限された CalendarUtil クラス (com.google.gwt.user.datepicker.client.CalendarUtil) がありますが、それでも多くの状況で非常に役立ちます。

Date オブジェクトで非推奨のメソッドを使用できます。すぐに削除する予定はありません。可能な限りミリ秒を使用してそれらを回避しようとしていますが、たとえば、非推奨の方法を使用して曜日を確認する方がはるかに簡単です。

于 2012-12-15T02:18:51.847 に答える