根据 Firebase 中的日期对事件进行排序

Sorting events according to date in Firebase

我在 Firebase 中有以下格式的新闻数据:

我想按照日期(newsDate)降序排列(最新的在最上面)。我在从 Firebase 检索数据时将此添加到我的代码中:

databaseReference.orderByChild("newsDate").addChildEventListener(new ChildEventListener() { // on child added methods }

但这只做字符串排序,所以顺序变成这样:04/08/2018 12:00, 13/08/2018 10:30, 30/07/2018 00:00

我知道这是因为按字母排序。想知道如何使用我的日期格式 (dd/mm/yyyy hh:mm) 以及降序自定义排序顺序?

Wondering how I can customize sorting order with my date format (dd/mm/yyyy hh:mm)?

您可以通过将 newsDate 属性 的类型从字符串更改为 timpestamp 来解决此问题。请看一下我在 中的回答,看看如何实现。

and also in descending order?

要解决这个问题,请参阅 Frank van Puffelen 的回答

尝试保存毫秒而不是日期,然后使用像below.or这样的简单查询来简单地查询日期。

使用 Millis 查询

databaseReference.orderByChild("newsDate").startAt(new DateTime().getMillis())

使用日期查询

databaseReference.orderByChild("newsDate").startAt(new DateTime())

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
String currentDateandTime = sdf.format(new Date());

databaseReference.orderByChild("newsDate").startAt(currentDateandTime )