Java Android解析-复杂查询

Java Android解析-复杂查询,java,android,arrays,parse-platform,Java,Android,Arrays,Parse Platform,我有一个函数,应该从与用户选择的日期匹配的Parse DB中获取事件。 涉及的两个类如下所示:& 说明:Showtimeclass只有一个属性,即日期属性。Showtimeclass是指向Showtimeclass对象的objectId数组。 因此,我的任务是找到与所选日期匹配的Showtimes,然后将结果Showtimes数组与Showclass匹配。我试图将Showclass数组与生成的数组进行匹配,但没有成功。logcat中没有错误。我的代码如下所示: 主要查询代码: t

我有一个函数,应该从与用户选择的日期匹配的Parse DB中获取事件。 涉及的两个类如下所示:& 说明:Showtimeclass只有一个属性,即日期属性。Showtimeclass是指向Showtimeclass对象的objectId数组。 因此,我的任务是找到与所选日期匹配的Showtimes,然后将结果Showtimes数组与Showclass匹配。我试图将Showclass数组与生成的数组进行匹配,但没有成功。logcat中没有错误。我的代码如下所示:

主要查询代码:

        temps = new ArrayList<>();
        tempTimes = new ArrayList<>();
        result = new ArrayList<>();

        tempTimes = getTimes();

        Log.e("SKG: temptimes", String.valueOf(tempTimes.size()));

        final ParseQuery<ParseObject> showQuery = ParseQuery.getQuery("Show");

        showQuery.findInBackground(new FindCallback<ParseObject>() {
            public void done(List<ParseObject> likeList, ParseException e) {
                if (e == null) {
                    for (ParseObject likeItem : likeList) {
                        temps = likeItem.getList("showtimes");
                        Log.e("SKG: temps", String.valueOf(temps.size()));
                        for (String emp : tempTimes) {
                            if (temps.contains(emp)) {
                                result.add(likeItem);
                                Log.e("SKG: event", String.valueOf(result.size()));
                            }
                        }
                    }
                }
            }
        });
temps=newarraylist();
试探时间=新的ArrayList();
结果=新的ArrayList();
testimes=getTimes();
Log.e(“SKG:testimes”,String.valueOf(testimes.size());
final ParseQuery showQuery=ParseQuery.getQuery(“Show”);
showQuery.findInBackground(新的FindCallback(){
公共作废完成(列表likeList,parsee异常){
如果(e==null){
for(ParseObject likeItem:likeList){
temps=likeItem.getList(“showtimes”);
Log.e(“SKG:temps”,String.valueOf(temps.size());
for(字符串emp:TENTIMES){
if(临时包含(emp)){
结果。添加(likeItem);
Log.e(“SKG:event”,String.valueOf(result.size());
}
}
}
}
}
});
GetTimes函数:

private ArrayList<String> getTimes() {
    final ArrayList<String> t1 = new ArrayList<>();

    final ParseQuery<ParseObject> showtimeQuery = ParseQuery.getQuery("Showtime");

    Date de = getDateFromDatePicket(dialog.getDatePicker());
    Date ds = getDateFromDatePicketStart(dialog.getDatePicker());

    showtimeQuery.whereLessThanOrEqualTo("date", de);
    showtimeQuery.whereGreaterThanOrEqualTo("date", ds);
    showtimeQuery.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> likeList, ParseException e) {
            if (e == null) {
                for (ParseObject likeItem : likeList) {
                    t1.add(likeItem.getObjectId());
                }
            }
        }
    });

    Log.e("SKG: event", String.valueOf(t1 .size()));
    return t1;
}
private ArrayList getTimes(){
最终ArrayList t1=新ArrayList();
final ParseQuery showtimeQuery=ParseQuery.getQuery(“Showtime”);
Date de=getDateFromDatePicket(dialog.getDatePicker());
Date ds=getDateFromDatePicketStart(dialog.getDatePicker());
showtimeQuery.whereLessThanOrEqualTo(“日期”,de);
showtimeQuery。其中大于或等于(“日期”,ds);
findInBackground(新的FindCallback(){
公共作废完成(列表likeList,parsee异常){
如果(e==null){
for(ParseObject likeItem:likeList){
t1.add(像item.getObjectId());
}
}
}
});
Log.e(“SKG:event”,String.valueOf(t1.size());
返回t1;
}

因此,我的问题是:如何获取Showclass中与Showtimeclass中所选日期匹配的对象的objectId?

parse以UTC格式保存时间确保将其转换为UTC并尝试查询, 您的现有日期可以这样转换为utc

SimpleDateFormat lv_formatter = new SimpleDateFormat(); 
lv_formatter.setTimeZone(TimeZone.getTimeZone("UTC"));  
lv_dateFormateInUTC = lv_formatter.format(lv_localDate);