【发布时间】:2018-05-21 10:55:35
【问题描述】:
我正在尝试从当前年份获取上一年。
private void lastyear() {
pd = new ProgressDialog(getActivity());
pd.setTitle("Please Wait...");
pd.setCancelable(false);
pd.show();
Date lastyear = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(lastyear.getTime());
calendar.add(Calendar.YEAR, -1);
lastyear = new Date(calendar.get(Calendar.YEAR));
Log.e("lastyear", String.valueOf(lastyear));
db.collection("Orderers").document(user_id).collection("OpenOrders")
.whereEqualTo("OrderPlacedDateTime", lastyear)
.orderBy("OrderPlacedDateTime", Query.Direction.DESCENDING)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
ls_data.clear();
for (DocumentSnapshot document : task.getResult()) {
if (document.exists()) {
final String DeliveryMethod = (String) document.get("DeliveryMethods");
final String ProductName = (String) document.get("ProductName");
final Object Price1 = document.get("ProductPrice");
final String Price = String.valueOf(Price1);
final Object FinalPrice1 = document.get("FinalPrice");
final String FinalPrice = String.valueOf(FinalPrice1);
final String date = String.valueOf(document.get("OrderPlacedDateTime"));
final String Orderid = (String) document.get("OrderId");
final String image3 = (String) document.get("ProductImage");
Model m = new Model();
m.setName(ProductName);
m.setPrice(Price);
m.setDate(String.valueOf(date));
m.setOrderid(Orderid);
m.setimage3(image3);
m.setFinalPrice(FinalPrice);
m.setDeliveryMethods(DeliveryMethod);
ls_data.add(m);
}
}
try {
adapter = new CustomAdapterOrders(getActivity(), ls_data, getActivity());
} catch (Exception ex) {
Log.e("Error", "Dashboard : " + ex);
}
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();
swipeLayout.setRefreshing(false);
listView.setVisibility(View.VISIBLE);
pd.dismiss();
}else{
pd.dismiss();
Toast.makeText(getActivity(), "No open orders yet", Toast.LENGTH_SHORT).show();
//listView.setAdapter(adapter);
listView.setVisibility(View.GONE);
//adapter.notifyDataSetChanged();
swipeLayout.setRefreshing(false);
}
}
});
}
它应该返回我 2017 作为结果。但是它返回的错误输出如下
一个 E/Filter by:: 去年 05-21 10:43:44.676 11437-11437/com.bodaty.samyata.samyata E/去年:1 月 1 日星期四 00:00:02 GMT+00:00 1970
应显示 2017 年的所有订单 提前谢谢
【问题讨论】:
-
看来问题不仅在于正确的年份,还在于如何编写包含给定年份中所有日期值的查询。我认为
whereEqualTo做不到。我不知道该怎么做。我希望有人这样做。
标签: android firebase google-cloud-firestore