Java使用Calendar生成时间的毫秒位问题

      事情是这样的,今天在开发手机后台时候,有个从数据库查询的Map,以Date作为主键且时间是5分钟倍数(数据库中处理的),然后构建另外一个数据集的时候需要从这个map查询数据,先利用Calendar生成初始化    

			Calendar cal = Calendar.getInstance();
			cal.set(year, month - 1, day, 0, 0, 0);
			Date begin = cal.getTime();
    然后利用这个begin以5分钟为增加额度来查询map,结果发现一个数据都查不到,而我确信查询条件是没错的,看了Date的源码其哈希判断是用Date的getTime()实现的,按道理只要时间相同是可以查到的,后来经过各种打印才发现原来是Calendar生成的begin毫秒位不是0,于是初始化时候加了句

cal.set(Calendar.MILLISECOND, 0);
解决问题。然后看了下Calendar源码,原来Calendar是用当前时间初始化的。


你可能感兴趣的:(java)