我正在尝试将 2 个日历对象与其日期进行比较。
我的代码:
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.set(2017, 1,2);
c2.set(2017, 1,1);
int compared = c1.compareTo(c2);
textView.setText("" + compared);
结果应该是 -1 或 1 的整数,其中我的情况应该是:-1。
然而,这不是我想要的结果。我希望能够直接比较日期说:
01/20/2010 compared to 02/30/2014 returns true or false.
有没有一些基于日历库的方法可以实现这一点?
我知道内置方法,如 getDay()、getMonth()、equals() 等。问题是,在使用 getDay()、getMonth()、getYear() 时,很难进行比较,因为我正在比较 3 个整数。
此外,我有一种感觉,要比较两个日期,我必须将时区和 timeinMillis 设置为相同。意思是直接比较日期,对于cal1和cal2,其时区和timeinmillis必须相同。
有人可以向我解释一下吗?
最佳答案
从概念的角度来看,您应该小心:compareTo() 具有返回 int 的非常具体的含义,其中 - 1, 0,1 结果告诉您如何排序被比较的对象。
您正在寻找的 boolean 结果表明您应该使用等于、之前或之后等动词来思考/说话!
采用一个明确定义的概念,保留名称但改变其含义是一个坏主意!
关于Java/Android : Literally Compare date of 2 Calendar objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43532975/