我正在尝试查询我的parse类中的“createdAt”列,以获取在特定日期之后创建的解析对象的数量。为此,我创建了一个7天前的日期,并将其作为参数发送到解析云函数:
public void getAdsFromServer() {
HashMap<String, Object> params = new HashMap<String, Object>();
SimpleDateFormat sdf = new SimpleDateFormat(
"EEE MMM dd HH:mm:ss zzz yyyy");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -7);
Log.i(LOG, "date before 7 days = " + sdf.format(cal.getTime()));
params.put("createdAt", sdf.format(cal.getTime()));
ParseCloud.callFunctionInBackground("getNumOfAds", params,
new FunctionCallback<Integer>() {
public void done(Integer result, ParseException e) {
if (e == null) {
Log.i(LOG, "SUCCESS:: " + result.toString());
} else {
Log.i(LOG, "failure");
}
}
});
}
以下是我的Parse云代码:
Parse.Cloud.define("getNumOfAds", function(request, response) {
var query = new Parse.Query("Ad");
query.greaterThan("createdAt", request.params.createdAt);
query.find({
success: function(results) {
response.success(results.length);
},
error: function() {
response.error("ad lookup failed");
}
});
});
虽然Parse上的“Ad”类填充了比此日期更新的15条记录,但Log.i(LOG, "SUCCESS:: " + result.toString());
打印出“SUCCESS :: 0”。
我想我的日期格式错误,但我的所有网络搜索都显示这是解析日期格式。
即使记录:
final ParseObject ad = new ParseObject("Ad");
Log.i(LOG, "Parse object created at: " + ad.getCreatedAt());
我得到这种格式。
感谢您的帮助,以找出我的代码中的错误。
谢谢!