0

入力した日付ではイベントを追加できません。どのパターンにすればいいのかわからない。

Event h1 = new Event(Tue Dec 13 00:00:00 CST 2022, "New Year's Day", "New Year's Day", "Holiday");
vEvents.add(h1);

イベントクラスです

public Event(Date d, String t, String de, String ty){
        this.date = new Date(d.getTime());
        this.title = t;
        this.desc = de;
        this.type = ty;
    }
4

2 に答える 2

0

これ:

Tue Dec 13 00:00:00 CST 2022

ではありませんDate。これは有効な Java でさえありませんString。いかなる種類の にもラップされておらず、コンパイル エラーが発生します。

特定の日に合格したい場合は、Calendarクラスをご覧ください。さらに良いのはJoda Timeです。

于 2012-12-11T05:39:04.090 に答える
0

(Tue Dec 13 00:00:00 CST 2022)Dateのようなオブジェクトを送信するのではなく、インスタンスを取得し、そこに日付を設定して、そこから を送信する必要があります。StringCalendarDate

ちょっとした例:

Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2022);
c.set(Calendar.MONTH, Calendar.DECEMBER);
c.set(Calendar.DATE, 13);
Event h1 = new Event(c.getTime(), "New Year's Day", "New Year's Day", "Holiday");
vEvents.add(h1);

Calendarすべてのコードを書き直さないようにするために、Dateインスタンスを取得するためのユーティリティ メソッドを作成できます。

public class Utils {

    public static Date getDate(int day, int month, int year) {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month - 1);
        c.set(Calendar.DATE, day);
        return c.getTime();
    }
}

//now calling this utility method in your code
Event h1 = new Event(Utils.getDate(13, 12, 2022), "New Year's Day", "New Year's Day", "Holiday");
vEvents.add(h1);

より高度な(そして現実世界のアプリケーション)ソリューションとして、Makoto's answer に記載されているように Joda Time を使用するように移行する必要があります。

于 2012-12-11T05:40:23.523 に答える