-2

Date() が非推奨であることを知っていることから始めましょう。ここで他の質問を見て、誰もがそれを述べています。

Java Swing を使用して GUI を開発する課題を行っています。GUI の一部は、それぞれ日、月、年の 3 つの JComboBox を持つ生年月日フィールドです。

3 つそれぞれから選択した項目を取得し、日付を作成するコードを取得しました。

Integer day = (Integer) dobDay.getSelectedItem();
Integer month = (Integer) dobMonth.getSelectedItem();
Integer year = (Integer) dobYear.getSelectedItem();

Date dob = new Date(day, month, year);

ただし、正しい日付は出力されたものではありません。

生年月日: 1919 年 10 月 11 日 00:00:00 GMT

コンボ ボックスから 14、4、および 1900 を選択した場合。

これを修正する方法がわかりません。Date controllerConsole() が機能するクラスと入力をテストするクラスがあるため、混乱しています。

int dobD = 14;
int dobM = 4;
int dobY = 1990;

Employee e = new Employee("Gethin", 'M', new Date(dobD, dobM, dobY), "02",
    new Date(9, 9, 2011));

Date() は非推奨ですが、ここから、1990 年 4 月 14 日という出力が得られます (Date クラスには、月番号を月名に変換する monthAsString コンストラクターがあります)。

これについて何か助けていただければ幸いです。Date() が廃止されたため、これに対する答えとして言及されている Calendar クラスを見てきましたが、私の割り当てでは Date() クラスを使用するように求められています。代わりに Calendar を使用することを選択した場合、彼らがどう思うかわかりません.

4

4 に答える 4

4
new Date(1990, 3, 14)

戻り値:

Sat Apr 14 00:00:00 CEST 1990

これはあなたが期待するものです。すべてがドキュメントで説明されています(パラメーターと有効な値の順序に注意してください)。

public Date(int 年、int 月、int 日)

パラメーター:

  • year - 1900 年を引いた年。
  • month - 0 ~ 11 の月。
  • date - 1 から 31 までの日付。

そしてところで:

Date() が非推奨であることを知っていることから始めましょう

いいえ、ちがいます。設計が不十分です (変更可能、紛らわしいtoString()、実際には ... dateを表していません) が、非推奨ではありません。(誤って) 使用しているコンストラクターのみが非推奨です。

于 2013-01-26T18:03:32.493 に答える
2

非推奨のメソッドを使用しないでください。

その逆ではDate(year, month, day)ありません。

それに加えて、年の値は自動的に 1900 に追加され (したがって、1999 を取得するには、year値は 99 でなければなりません)、それを取得します。

非推奨のメソッドを使用しないでください。

于 2013-01-26T18:03:51.577 に答える
1

Date コンストラクターは、年、月、日をこの順序で想定しています。日、月、年を渡します。

于 2013-01-26T18:03:08.840 に答える
0

月の文字列値を指定できる場合は、SimpleDateFormat を使用して文字列を日付にフォーマットできます。連結を使用すると、「25-Nov-2012」という形式で日付を取得できます。詳細については、このリンクを確認してくださいhttp://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

于 2013-01-26T18:05:25.747 に答える