我将2个日历设置为相同的日期,但结果为 Cal1.CompareTo(Cal2)不是所需的零,因为2个日历的时间不同。 有没有办法缩短日历条目的时间? 一种解决方案是将日历条目转换为类型“日期”。但是,几乎不推荐使用Date(或至少使用Calendar的日,月和年参数构造函数) 还有其他想法吗? 在timeInMuliseconds上做一些模数计算听起来很难看。
TIA
答案 0 :(得分:4)
您可以在两个对象上将MILLISECOND(或任何您不想要比较的字段)设置为ZERO。
示例:
cal.set(Calendar.MILLISECOND, 0);
cal.set(Calendar.HOUR , 0);
cal.set(Calendar.MINUTE , 0);
cal.set(Calendar.SECOND , 0);
以下是javadoc日历。
答案 1 :(得分:2)
就个人而言,我强烈建议您使用Joda Time代替。此时,您可以使用LocalDate
来代替您感兴趣的信息.Joda Time拥有更丰富的类型。它通常是比内置Calendar
和Date
类更好的日期/时间API。
请注意,您还应该考虑时区 - 同一时刻可以是两个不同的人的不同日期...(当构建 a {{1时,您必须考虑这一点}})。
所有这一切都假设这两个值也在同一个日历系统中 - 但这很可能。
答案 2 :(得分:0)
使用以下方式打印您的日历:
Log.d("Test","Time1: "+cal1.getTimeInMillis());
Log.d("Test","Time2: "+cal2.getTimeInMillis());
如果你没有得到相同的时间,并且你想要两者都相同,那就做这样的事情:
cal2 = cal1.clone;