1

現在は 3/15/11 で、新しい日付オブジェクトを呼び出しているとき:

Date now = new Date();

お返ししてます

  • 月を 2 ( getMonth())、
  • 日として2 ( getDay())
  • 年 ( getYear()) は 111 です。

この慣習には理由がありますか?

4

3 に答える 3

3

クラスのドキュメントから直接:

  • 年 y は、整数 y - 1900 で表されます。
  • 月は 0 から 11 までの整数で表されます。0 は 1 月、1 は 2 月などです。したがって、11 は 12 月です。
  • 日付 (月の日) は、通常の方法で 1 から 31 までの整数で表されます。

そして、に関してはgetDay()

この日付が表す曜日を返します。戻り値 (0 = 日曜日、1 = 月曜日、2 = 火曜日、3 = 水曜日、4 = 木曜日、5 = 金曜日、6 = 土曜日) は、この値で表される時点を含む、または開始する曜日を表します。ローカル タイム ゾーンで解釈される日付オブジェクト。

2011 年 3 月 15 日は実際には火曜日です。

于 2011-03-16T02:05:28.020 に答える
2

この慣習には理由がありますか?

その理由は、Date の javadoc が指定するものだからです。@matt bの回答を参照してください。

API は JDK 1.0のDate時代に作成されたものであり、多くの分野で問題があることがよく知られています。そのため、ほとんどの Date メソッドが非推奨としてマークされています。(ちなみに、新しいコードでは使用しないことをお勧めします!!)

CalendarAPI は で大幅に改善されてDateいますが、Java で日付/時刻の値を処理するための最も優れた API は、サードパーティのJoda時間API です。


Joda 時間の使用例が必要な場合は、上記のリンクを参照してください。GregorianCalendarjavadocsに Calendar の使用例があります。カレンダーのその他の使用例は、このページにあります。

于 2011-03-16T02:12:14.633 に答える