bug的表现
查询不到数据。
bug的排查过程
把Calendar生成的Date通过getTime()打印出时间戳。
bug原因分析
因为数据库里的数据是每天生成的,所以对应的时间毫秒为0,而Calendar生成的时间没有对毫秒进行set值覆盖,导致使用到了当前时间的毫秒值。此时由于查询条件是 >= 导致这部分数据被忽略掉了。
总结
由于 Calendar.getInstance(); 是通过当前时间进行初始化,如果没有显性给对应的对应的field进行set值的话,就会使用的是当前时间的field。(下次使用 Calendar 时一定记得对所有的时间field进行赋值,确保不出问题。)