遍历日期和人员的时候往数据库里添加日期出错,但是后台打印出来的日期是正确地。
代码如下:
// 遍历日期和人员
for(int i=0;i<userIdList.size();i++){
// System.out.println("i=="+i);
for(Date start1= new Date(startDate.getTime());start1.compareTo(endDate)<=0;start1.setDate(start1.getDate()+1)){
BusinessTrip bt = new BusinessTrip();
bt.setBtId(billId);
bt.setStartDate(start1);
System.out.println("时间:"+start1+"人员编号:"+userIdList.get(i)+"人员名称:"+userNameList.get(i)
+"机构:"+groupList.get(i));
bt.setEndTime(endTime);
bt.setStartTime(startTime);
bt.setStatus(0);
bt.setMemo(memo);
bt.setTimeType(timeType);
bt.setUserId(userIdList.get(i));
bt.setUserName(userNameList.get(i));
bt.setGroupName(groupList.get(i));
baseDAO.add(bt);
BusinessTrip bt2 = (BusinessTrip)baseDAO.getBeanByID(bt.getId(), new BusinessTrip());
System.out.println(bt2.getStartDate());
}
}
这段代码 如果时间是到2012-09-11则在数据库里所有记录插入的时间都是2012-09-12 但是后台打印的时候会打印出2012-09-09,2012-09-10,2012-09-11。
修改方法如下:
// 遍历日期和人员
for(int i=0;i<userIdList.size();i++){
// System.out.println("i=="+i);
for(Date start1= new Date(startDate.getTime());start1.compareTo(endDate)<=0;start1.setDate(start1.getDate()+1)){
BusinessTrip bt = new BusinessTrip();
bt.setBtId(billId);
Date d1 = new Date(start1.getTime());
bt.setStartDate(d1);
System.out.println("时间:"+start1+"人员编号:"+userIdList.get(i)+"人员名称:"+userNameList.get(i)
+"机构:"+groupList.get(i));
bt.setEndTime(endTime);
bt.setStartTime(startTime);
bt.setStatus(0);
bt.setMemo(memo);
bt.setTimeType(timeType);
bt.setUserId(userIdList.get(i));
bt.setUserName(userNameList.get(i));
bt.setGroupName(groupList.get(i));
baseDAO.add(bt);
BusinessTrip bt2 = (BusinessTrip)baseDAO.getBeanByID(bt.getId(), new BusinessTrip());
System.out.println(bt2.getStartDate());
}
}
这样就没事儿了,具体原因为何一直搞不清楚,如果哪位能详细解释,敬请留下解释。