我正在做 Parse + Android 应用程序。由于 parse 会自动为每个对象创建类型为 Date
的 createdAt
字段,因此我想构建一个比较当前日期的查询。
这是我想做的事情:
ParseQuery<ParseObject> mealPlan = ParseQuery.getQuery("MealPlans");
mealPlan.whereEqualTo("created_at", current Date );
所以基本上我想检索今天创建的对象。
最佳答案
使用 whereEqualTo()
,您只需查询恰好在 当前日期
创建的对象。您应该查询日期范围 >= 今天中午 12:00 和 < 明天中午 12:00(如果需要,或者 <= 今天晚上 11:59)。
使用 Parse 的 whereLessThan()
和 whereGreaterThanOrEqualTo()
。
// First, get the two dates (start and end of day)
// You'll find many algorithms to calculate these,
// but here's a quick and easy one:
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
// start of today
Date today = cal.getTime();
cal.add(Calendar.DAY_OF_MONTH, 1); // add one day to get start of tomorrow
// start of tomorrow
Date tomorrow = cal.getTime();
// Your query:
ParseQuery<ParseObject> mealPlan = ParseQuery.getQuery("MealPlans");
mealPlan.whereGreaterThanOrEqualTo("createdAt", today);
mealPlan.whereLessThan("createdAt", tomorrow);
注意:
上面显示的日期计算只是一个简单的计算,因为这里的原始问题是查询而不是计算日期。您会发现许多算法和库,例如 Joda-Time,它们也考虑了边缘情况和夏令时情况。
关于android - 如何在 Parse 中比较查询当前日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34883330/