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