我正在使用Parse,我在其中存储产品的用户评级。在用户仪表板上,我显示了用户本周,本月和总计已完成的评分数。
本周要回家的时间我使用以下代码:
public getWeeklyRatingsTask(final String userId, final RemoteCallListener callListener){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK,1);
Log.i("USER ID ===============++++++", userId);
Date date = calendar.getTime();
Log.i("DATE----====----====--", String.valueOf(date));
ParseQuery<ParseObject> query = ParseQuery.getQuery("beer_rating");
query.whereEqualTo("userId", userId);
query.whereGreaterThanOrEqualTo("createdAt", date);
query.countInBackground(new CountCallback() {
@Override
public void done(int beerCount, ParseException e) {
if(e==null) {
callListener.onRemoteCallComplete(beerCount);
Log.i("WEEKLY BEER COUNT TASK ================", String.valueOf(beerCount));
}
else{
callListener.onRemoteErrorOccur(e);
}
}
});
}
}
所以我在三台设备上测试它,xxhdpi(运行4.4.2),xhdpi(4.3)和hdpi(4.1.2)。
在xxhdpi和xhdpi上,这样可以正确计算每周计数。但是,在hdpi设备(samsung s3 mini)上它返回零。
因此,我在xxhdpi和xhdpi上记录Log.i("DATE----====----====--", String.valueOf(date));
时会记录Sun Aug 03 11:50:04 GMT+01:00 2014
但是hdpi是log Sun Aug 10 11:50:04 GMT+01:00 2014
。
如果有人可以帮我解决这个问题,我非常感谢...我确定我可以添加一张支票,看看是否存在版权问题,并采用不同的方法。
答案 0 :(得分:0)
星期几计算取决于特定于语言环境的第一天设置。
在某些地区,星期日是一周的第一天。在其他一些语言环境中,星期日是一周的最后一天。将星期设置设置为星期日会将日历设置为当前星期日的星期日,可以根据区域设置向后或向前设置日历。
不要将星期日硬编码为星期的第一天,而是使用getFirstDayOfWeek()
来获取当前特定区域设置的第一天。