根据 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 )
我在 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 )