日期无法正确存入数据库

来源:互联网 发布:淘宝付款取消验证码 编辑:程序博客网 时间:2024/05/20 18:45

遍历日期和人员的时候往数据库里添加日期出错,但是后台打印出来的日期是正确地。

代码如下:

//遍历日期和人员 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()); } }
这样就没事儿了,具体原因为何一直搞不清楚,如果哪位能详细解释,敬请留下解释。


原创粉丝点击