Firebase 如何按字段存储字符串作为日期格式对数据进行排序;yyyy/MM/dd HH:MM:ss“;
我有一个以日期格式存储的数据字段,如“yyyy/MM/dd HH:MM:ss”。我想使用orderby按日期对数据进行排序,但我如何才能做到这一点 我是通过代码来实现的,但是当它处理大量的数据时,这需要很长的时间Firebase 如何按字段存储字符串作为日期格式对数据进行排序;yyyy/MM/dd HH:MM:ss“;,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我有一个以日期格式存储的数据字段,如“yyyy/MM/dd HH:MM:ss”。我想使用orderby按日期对数据进行排序,但我如何才能做到这一点 我是通过代码来实现的,但是当它处理大量的数据时,这需要很长的时间 public void sortBy_Desc(String SortBy) { int size = universityData.size(); int after; for (int m = size; m >= 0; m--) {
public void sortBy_Desc(String SortBy) {
int size = universityData.size();
int after;
for (int m = size; m >= 0; m--) {
for (int before = 0; before < size - 1; before++) {
after = before + 1;
long first = 0, second = 0;
if (SortBy.equals(Data.EXAM_DATE)) {
first = convertStringToDate(examData.get(before).getExam_date()).getTime();
second = convertStringToDate(examData.get(after).getExam_date()).getTime();
}
else if (SortBy.equals(Data.REG_DATE)) {
first = convertStringToDate(examData.get(before).getReg_end_date()).getTime();
second = convertStringToDate(examData.get(after).getReg_end_date()).getTime();
}
else if (SortBy.equals(Data.FEE)) {
String fee = getCurrencyType(examData.get(before).getExam_fee()).get(0);
first = Integer.parseInt(fee);
fee = getCurrencyType(examData.get(after).getExam_fee()).get(0);
second = Integer.parseInt(fee);
}
if (first < second) {
swapData(before, after);
}
}
}
}
public void sortBy_Desc(字符串sortBy){
int size=universityData.size();
int之后;
对于(int m=size;m>=0;m--){
for(int-before=0;before
正如道格·史蒂文森(Doug Stevenson)提到的,你最好将日期存储为字符串。最好的选择是将日期转换为自1970年1月1日00:00:00 GMT以来的毫秒数
在Java中,这是这样做的
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = sdf.parse(myDate);
long millisSinceEpoch = date.getTime();
或者使用Java8执行以下操作
long millisSinceEpoch = LocalDateTime.parse(myDate, DateTimeFormatter.ofPattern("uuuu/MM/dd HH:mm:ss"))
.atOffset(ZoneOffset.UTC)
.toInstant()
.toEpochMilli();
这样就很容易订购了。如果您想获得相反的顺序(即首先是最近的日期),您可以存储
0 - millisSinceEpoch
检查这个:最好将日期存储为数字而不是字符串。它们会更小,也更容易排序。仅供参考,像
java.util.date
、java.util.Calendar
、和java.text.simpleDataFormat
这样麻烦的旧日期时间类现在已经被这些类所取代。大部分java.time功能都在项目中向后移植到Java6和Java7。进一步适应项目中早期的Android。看见