Firebase endAt()无法使用日期字符串?

时间:2016-10-23 13:37:20

标签: android firebase firebase-realtime-database

这里非常基本的问题

我的存储日期字符串在Firebase DB中是这样的

23-Oct-2016 07:00:11 AM

现在我正在解雇此查询,我将获得从该日期开始的所有数据

   Query query = mDatabase.orderByChild("time").startAt("23-Oct-2016")

现在我还希望按当前的AM / PM时间进行过滤我正在尝试这样的查询,但它对结果没有影响。

基本上,如果当前时间是PM,它不应该返回任何对象,我不知道它为什么不起作用。

   Query query = mDatabase.orderByChild("time").startAt("23-Oct-2016").endAt("PM");

1 个答案:

答案 0 :(得分:3)

将日期和时间存储为您似乎正在执行的可读字符串可确保您节省时间。字符串按字典顺序排列,而您通常希望按时间顺序排列日期。这两个订单并不总是匹配。

存储查询日期/时间的最佳方法是简单timestamp:自UNIX纪元以来的毫秒数。

如果您坚持将日期和时间存储为更易读的字符串,则最好将它们以可读的格式存储,并按字典顺序和时间顺序排序,例如ISO 8601格式:{{ 1}}。这是我输入的当前时间:2016年10月23日下午3:04 UTC。