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

您不应该发送DateString(Tue Dec 13 00:00:00 CST 2022)这样的对象,而是获取一个Calendar实例,在那里设置日期并Date从那里发送。

小例子:

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 的回答中所述使用 Joda Time。

于 2012-12-11T05:40:23.523 回答