排序所以,我有一个看似不那么聪明的问题,但在这里不用,日期时间SQLite中
10:00pm to 11:00pm
在上面的格式从服务器返回的日期时间。
我想能够对其进行排序,但使用ORDER BY ASC
似乎不起作用。它适用于iPhone,但不适用于Android。
是否因为SQLite数据库版本?
如何排序时间?
排序所以,我有一个看似不那么聪明的问题,但在这里不用,日期时间SQLite中
10:00pm to 11:00pm
在上面的格式从服务器返回的日期时间。
我想能够对其进行排序,但使用ORDER BY ASC
似乎不起作用。它适用于iPhone,但不适用于Android。
是否因为SQLite数据库版本?
如何排序时间?
显示的内容不是日期时间,而是时间间隔。
该值是一个字符串,字符串按字典顺序进行比较。 为了确保您的字符串正确排序,所有字段必须始终具有相同的长度(如果不是,9:00
将被排序后10:00
;使用09:00
代替)。 此外,AM
/PM
后缀在一天中的第一个小时内不能正确排序;改用普通的24小时制。
也许它是因为SQLite,但尝试存储秒的时间,如果你排序sec它将工作。 EX 1:05 = 65秒。 编辑:如果你想显示在查看时间,只需将其转换回H:M:S 我认为这将是对你最简单的方法;)
你可以做一件事之前,在转换数据库存储日期变为milis。然后你可以从中得到排序的列表。然后获得排序结果后,您可以再次将它们转换为日期。
对于转换,您可以使用SimpleDateFormat类。示例代码可以在doc中找到,或者您可以看到很多示例
您可以通过使用时间戳整理日期:像: “YY MM DD HH:MM一” //这里你的情况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表名ORDER BY Column_Date ASC