【问题标题】:Date time sorting in SQLiteSQLite中的日期时间排序
【发布时间】:2013-03-05 00:16:34
【问题描述】:

所以我有一个看似不那么聪明的问题,但这里是,

10:00pm to 11:00pm

以上述格式从服务器返回一个日期时间。

我希望能够对其进行排序,但使用ORDER BY ASC 似乎不起作用。它适用于 iPhone,但不适用于 Android。

是因为 SQLite 数据库版本的原因吗?

如何对时间进行排序?

【问题讨论】:

    标签: android sqlite date


    【解决方案1】:

    你显示的不是日期时间,而是时间间隔。

    这个值是一个字符串,字符串是按字典顺序比较的。 为了确保您的字符串正确排序,所有字段必须始终具有相同的长度(如果不是,9:00 将在10:00 之后进行排序;请改用09:00)。 此外,AM/PM 后缀在一天的第一个小时没有正确排序;请改用普通的 24 小时格式。

    【讨论】:

      【解决方案2】:

      可能是因为 SQLite,但尝试以秒为单位存储时间,如果您对秒进行排序,它将起作用。 EX 1:05 = 65 秒。 编辑:如果要在视图中显示时间,只需将其转换回 h:m:s 我认为这对你来说是最简单的方法;)

      【讨论】:

        【解决方案3】:

        您可以做一件事,在存储到数据库之前将日期转换为 milis。然后你可以从中得到排序列表。然后在得到排序结果后,您可以再次将它们转换为日期。

        对于转换,您可以使用 SimpleDateFormat 类。示例代码可以在doc 中找到,或者您可以在那里看到很多示例

        【讨论】:

          【解决方案4】:

          您可以使用时间戳对日期进行排序:例如:“yy MM dd hh:mm a”//在您的情况下为 hh:mma

          将您的时间转换为简单的日期格式,如下所示:

          DateFormat simpleDateFordate = new SimpleDateFormat("yy MM dd");
                  Calendar calender = Calendar.getInstance();
                  String date = simpleDateFordate.format(calender.getTime());
                  System.out.println("date>>>>" + date);
                  String time = "10:00pm";
                  String stringDate = date + " " + time;
          
                  DateFormat dateFormatdatewithTime = new SimpleDateFormat(
                          "yy MM dd hh:mma");
                  Date dateinMili;
                  try {
                      dateinMili = dateFormatdatewithTime.parse(stringDate);
                      String dateFinal = dateFormatdatewithTime.format(dateinMili.getTime());
                      System.out.println("Final Date time>>>>"+dateFinal);
                  } catch (ParseException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
          

          将 Mili 秒存储到您的数据库中,或者您可以简单地将 dateinSimpleFormat 日期存储到您的数据库中。

          毕竟,您可以通过简单的查询直接对其进行排序,例如: SELECT * From Table_Name ORDER BY Column_Date ASC

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-04-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多