开发单据时,经常会填写业务日期及其它的一些业务相关的日期处理,BOS提供的日期控件可以让我们去选择设置日期值,尽管界面上看到的是日期,但实际上保存到数据库中的还是带了十分秒,比如界面上看到的是“2009-05-01”,但数据库中存的就可能是“2009-05-01 14:25:02”,在后面做报表查询时,如果想查截止到2009-05-01日期的记录时,就会将“2009-05-01 14:25:02" 记录排除掉,因为查询界面上日期控件给出的“2009-05-01”的日期值实际上就是“2009-05-01 00:00:00”,小于这个值自然就将“2009-05-01 14:25:02" 过滤掉了。
针对这个问题需要在服务端的Save方法和submit方法中做重载,将info对象中的日期字段(创建日期和更新日期除外)做截取掉时分秒的处理,调用的方法为:DateTimeUtils.truncateDate(date)。
另外如果在客户端想对日期控件设置不带时分秒的当前日期,可以使用DateHelper.getDayBegin()方法获取。