如何修改日历

时间:2014-03-24 14:26:40

标签: java calendar

我需要插入两个名为:BeginHour和EndHour日期和日历类型的列。

我有一个生成BeginHour的方法,然后我将其修改为EndHour。最后我调用我的DAO方法将它们插入到我的表中。

问题是我找到了变量' cal'的最后一次修改。进入两列。

例如,如果BeginHour是2014-03-24 15:23:10,EndHour应该是2014-03-24 15:28:20 但在我的表格中,我发现EndHour:2014-03-24 15:28:20进入两列。

Calendar cal = mock.randomBeginHour();
        consoApp.setBeginHour(cal);  
    cal.add(Calendar.MINUTE, +5);
    cal.add(Calendar.SECOND, +10);
        consoApp.setEndHour(cal);
        dao.addConsoAppel(consoApp)

2 个答案:

答案 0 :(得分:2)

您对CalendarbeginHour使用相同的endHour对象参考。改为创建两个不同的Calendar。您可以使用Calendar轻松创建另一个Calendar#getInstance()实例,并在第一个日历中指定时间以设置另一个日历的开始时间。在代码中:

Calendar cal = mock.randomBeginHour();
consoApp.setBeginHour(cal);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(cal.getTime());
cal2.add(Calendar.MINUTE, +5);
cal2.add(Calendar.SECOND, +10);
consoApp.setEndHour(cal2);
dao.addConsoAppel(consoApp);

答案 1 :(得分:0)

这是因为变量cal的值是通过引用传递的。所以beginHour和endHour都得到了相同的价值。您应该为endHour创建一个新的Calendar实例,将其值分配给beginHour,然后执行添加