2

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

10:00pm to 11:00pm

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

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

是因为 SQLite 数据库版本吗?

我如何对时间进行排序?

4

4 回答 4

7

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

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

于 2013-03-05T08:21:41.320 回答
0

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

于 2013-03-05T00:31:09.147 回答
0

您可以使用时间戳对日期进行排序:例如:“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 Seconds 存储到您的数据库中,或者您可以简单地将 dateinSimpleFormat Date 存储到您的数据库中。

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

于 2013-03-05T11:51:12.623 回答
0

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

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

于 2013-03-05T05:12:03.663 回答