如何用字符串对存储在数据库中的日期进行排序

时间:2013-11-22 07:35:18

标签: android sorting android-sqlite android-date android-query

我正在尝试排序

  

SELECT * FROM myTable ORDER BY DATE(date)// date与字符串一起存储

这是LogCat

11-22 12:50:50.906: I/DB(31388): get :17 Nov 2013 09:36:01
11-22 12:50:50.906: I/DB(31388): get :13 Nov 2013 07:41:29
11-22 12:50:50.907: I/DB(31388): get :12 Nov 2013 11:09:46
11-22 12:50:50.907: I/DB(31388): get :08 Nov 2013 09:13:26
11-22 12:50:50.908: I/DB(31388): get :02 Nov 2013 08:54:26
11-22 12:50:50.908: I/DB(31388): get :27 Oct 2013 08:02:09
11-22 12:50:50.908: I/DB(31388): get :26 Oct 2013 07:42:18
11-22 12:50:50.908: I/DB(31388): get :21 Oct 2013 06:45:18
11-22 12:50:50.909: I/DB(31388): get :19 Oct 2013 07:38:43
11-22 12:50:50.909: I/DB(31388): get :16 Oct 2013 03:12:16

从此处更新============>>>

这不是返回long值。它总是return 0

    try {
        DateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
        Date date = sdf.parse(dateTime);
        long milliseconds = date.getTime();
        return milliseconds;
    } catch (Exception e) {
        e.printStackTrace();
        Log.i("DB", "err :" + e);
        return 0;
    }

我想用最新的日期排序 任何人都可以花一些时间给我.. 提前谢谢。

2 个答案:

答案 0 :(得分:3)

您可以将字符串日期转换为Long然后将其转换为数据库: 如果你有类似这样的日期字符串22/11/2013 12:10:00你可以在 SimpleDateFormater

的帮助下简单地转换它
   public static long convertStringDateToLong(String dateTime){
        try {
            DateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
            Date d = f.parse(dateTime);
            long milliseconds = d.getTime();
            return milliseconds;
        } catch (Exception e) {
            return 0;
        }

    }

SimpleDateFormate取决于您的日期字符串格式。

答案 1 :(得分:1)

我为这个问题做了这个..

谢谢大家......

public static String convertLongToStringDate(String dateTime) {
    String dateString=null;
    Long l=Long.parseLong(dateTime);
    try {
        Date date=new Date(l);
        DateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss");
        dateString = sdf.format(date);
    } catch (Exception e) {
        return dateString;
    }
    return dateString;
}