0

Я пытаюсь сортироватькак сортировать даты, которые хранящуюся в базе данных с струна

SELECT * FROM MyTable ORDER BY 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 

UPDATE здесь ============ >>>

Это не возврат 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; 
    } 

Я хочу разобраться с последней датой может кто-нибудь провел некоторое время для меня .. Спасибо заранее.

+0

вы должны поставить дату в дб в миллисекундах (Long значение). –

+0

не могли бы вы продумать, как это сделать. ???? – AndyBoy

+0

какая строка вы получаете? –

ответ

3

Вы можете преобразовать вас дату строки в Лонг Затем Мириться его в базу данных: если у вас есть строка даты что-то вроде этого 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 В зависимости от вас Дата Форматирование строки.

+0

Как сортировать и печатать всю дату с помощью этого кода, можете ли вы рассказать мне .. – AndyBoy

+0

first convert String дайте Long и поместите его в DB. Теперь вы можете использовать простой запрос Выберите * из имени таблицы имя по дате имя колонки desc Limit maxrows или http://stackoverflow.com/questions/8051800/sort-a-list-in-ascending-order-by-date- from-sqlite –

+0

и снова мне нужно конвертировать долгое время на показ, я так ли? – AndyBoy

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; 
}