关于Calendar类的compareTo方法比较两个时间不相等的问题

今天在做一个APP的时候要用到两个时间的比较,比较的是一个特定时间和当前时间,所以想到了用Calendar类的compareTo方法来比较,当前时间使用Calendear.getInstance()获取,另一个时间通过“2014-12-11 16:48:00”转化而来,在使用compareTo方法比较时发现两个却不相等,返回-1,但是当前时间确实是"2014-12-11 16:48:00"

于是查看该方法的源码,如图

关于Calendar类的compareTo方法比较两个时间不相等的问题_第1张图片

显然timeInMillis是小于anotherTimeInMillis的,应该是精确度的问题,再跳进getTimeInMillis()方法

关于Calendar类的compareTo方法比较两个时间不相等的问题_第2张图片

代码很简单,computeTime为抽象方法,跳进子类GregorianCalendar查看

关于Calendar类的compareTo方法比较两个时间不相等的问题_第3张图片

在往下看,找到了这行代码

差不多了,在比较前将Calendar实例的MILLISECOND单位都设置为0,compareTo方法返回0了,又是一个小问题,折腾这么久,好了,继续Coding。

你可能感兴趣的:(java)