比较createdAt字段与android中的parse.com上的日期(不是日期时间)

时间:2015-05-22 19:33:19

标签: android date parse-platform

我在我的应用程序中使用parse.com。我可以向/从解析中插入/获取数据。一切正常。但我想使用createdAt字段来获取数据。

我有两个问题。

  1. 获取今天创建的记录。
  2. 获取今天之前创建的记录。
  3. 问题是解析使用日期时间比较createdAt字段所以我不能在查询参数中使用新的Date()。有没有办法比较createdAt字段只按日期?

    This问题与我的问题类似。但有没有标准方法?

1 个答案:

答案 0 :(得分:1)

据我了解,您需要一些类似关键字“like”的函数,在数据库中使用它来检查列中是否存在子字符串。所以,我们在Parse的Android API中有一个方法。

为此你需要致电whereContains(String key, String substring) 这将添加一个约束来查找包含提供的字符串的字符串值。

所以,你可以这样写:

query.whereContains("createdAt", "25-05-2015");

那只会检索那些属于这个日期并且不包含时间的数据。

文档参考: https://www.parse.com/docs/android/api/#ParseQuery/whereContains

修改

由于createdAt列是Date类型,它只接受Date变量。在这种情况下,上述功能将无法正常工作。因此,要实现这一目标,我们必须使用whereGreaterThanwhereLessThan。示例代码段为:

Date midnight = new Date();
midnight.setHours(0);
midnight.setMinutes(0);
midnight.setSeconds(0);

Date elevenfiftynine = new Date();
elevenfiftynine.setHours(23);
elevenfiftynine.setMinutes(59);
elevenfiftynine.setSeconds(59);

query.whereGreaterThan(Constants.CREATED_AT_KEY, midnight);
query.whereLessThan(Constants.CREATED_AT_KEY, elevenfiftynine);

参考: https://www.parse.com/questions/android-api-query-to-get-all-objects-created-today