プロが教えるわが家の防犯対策術!

jdk1.6を使用しています。

ユーザに年月日を指定してもらい、それぞれint型に格納。

DBの属性date型に格納する為に
Date a = new Date();
a.setYear(intYear);
をしようと試みましたが
setYearはDeprecated属性で推奨されていないもよう。

どのようにDateクラスに格納すればよろしいのでしょうか。

A 回答 (5件)

Calendar使いましょう。



int intYear = 2009;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR, intYear);
Date date = cal.getTime();
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
CalendarのgetTime()メソッドですね。
助かりました。

お礼日時:2009/04/28 10:00

またかぶって(ry



void set(int field, int value)
時間フィールドに、指定された値を設定します。
void set(int year, int month, int date)
年、月、日付のフィールドに値を設定します。
void set(int year, int month, int date, int hour, int minute)
年、月、日付、時、分のフィールドに値を設定します。
void set(int year, int month, int date, int hour, int minute, int second)
年、月、日付、時、分、秒のフィールドに値を設定します。

Calendarクラスのsetメソッドはいろいろあるので好きなのつかってくれ、と。
    • good
    • 0

引数間違えた。


cal.set(Calendar.DAY_OF_YEAR, intYear);→cal.set(Calendar.YEAR, intYear);

No2さんのように複数フィールドに同時にセットもできます。
    • good
    • 0

ProKaseifuさんスミマセン・・・かぶりました。



ProKaseifuさんのやり方の方が丁寧です。
Calendar#set(対象, 値)

私の回答は一気にまとめて・・・という少し手抜きなやり方。
Calendar#set(年, 月, 日)
    • good
    • 0

例)・・・


Calendar cal = GregorianCalendar.getInstance();
// Calendar#set(year, month, date);
cal.set(2009, 2, 11);
Date date = cal.getTime());

注意として、Calendarクラスの月(第二引数)は
意図する月の -1 をセットしてください。
上記のとおりだと、2009/03/11 と認識されます。
※ java内部では0~11が1~12月という扱いになります
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
setで同時に格納もできるのですね。
勉強になりました!
注意点も了解しました。

お礼日時:2009/04/28 10:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!