对于最新Realm
版本,我们可以使用between(String fieldName, Date from, Date to)
如果您使用“27-01-2016”格式,请在保存之前重置此值date
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
RealmObject.setDbDate(cal.getTime());
然后您可以查询,确保正确设置startDate
和endDate
值范围
query.between(RealmObject.FIELD_DATE, startDate, endDate);
但是,有时between()
是不够的,因为它不允许链接对象,例如当您搜索其子项(也包含日期的 RealmObject)与日期范围匹配的所有项目时。
然后你可以使用greaterThanOrEqualTo(String fieldName, Date value)
和lessThanOrEqualTo(String fieldName, Date value)
query.greaterThanOrEqualTo(RealmObject.FIELD_LINKED_OBJECT + "." + LinkedObject.FIELD_DATE, startDate)
.findAll()
.where()
.lessThanOrEqualTo(RealmObject.FIELD_LINKED_OBJECT + "." + LinkedObject.FIELD_DATE, endDate)
.findAll();